Javascript Typescript(3.8+;),私有字段的缺点是什么?

Javascript Typescript(3.8+;),私有字段的缺点是什么?,javascript,typescript,Javascript,Typescript,TypeScript 3.8支持#private字段。我习惯于使用TypeScript的private字段来阻止对这些字段的访问 我知道这些字段在生成的JavaScript中不是真正私有的,而新的#private在生成的代码中是私有的 撇开“真正的私人”和“假私人”不谈,我有没有理由不把我所有的private转换成#private? 这一举措的不利之处是什么?慢一点吗? 所有浏览器都支持生成的代码吗 谢谢 我有没有理由不把我所有的私人物品都换成私人物品 如果您必须支持非ES6浏览器 这一举措的不

TypeScript 3.8支持
#private
字段。我习惯于使用TypeScript的
private
字段来阻止对这些字段的访问

我知道这些字段在生成的JavaScript中不是真正私有的,而新的
#private
在生成的代码中是私有的

撇开“真正的私人”和“假私人”不谈,我有没有理由不把我所有的
private
转换成
#private
? 这一举措的不利之处是什么?慢一点吗? 所有浏览器都支持生成的代码吗

谢谢

我有没有理由不把我所有的私人物品都换成私人物品

如果您必须支持非ES6浏览器

这一举措的不利之处是什么?所有浏览器都支持生成的代码吗

主要缺点/浏览器支持:仅ES6浏览器支持

慢一点吗

是的。但要小心过早的性能优化

优点:严格保密 一个未被问到的问题是你为什么要这么做。旧的关键字
private
只是编译时的东西。新的
#
私有化是真正的私有化:

class C {
    #foo = 10;
}

const c = new C();        
console.log(new C()["#foo"]); // prints undefined as its private
我有没有理由不把我所有的私人物品都换成私人物品

如果您必须支持非ES6浏览器

这一举措的不利之处是什么?所有浏览器都支持生成的代码吗

主要缺点/浏览器支持:仅ES6浏览器支持

慢一点吗

是的。但要小心过早的性能优化

优点:严格保密 一个未被问到的问题是你为什么要这么做。旧的关键字
private
只是编译时的东西。新的
#
私有化是真正的私有化:

class C {
    #foo = 10;
}

const c = new C();        
console.log(new C()["#foo"]); // prints undefined as its private