Bu eski bir tartışma olduğunu fark ama yine dışarı derlenmiş JavaScript ortak arabirim sınıfının içine "sızıntı" daktilo sözde özel değişkenler ve yöntemlerin sorunu yeniden benim çözüm paylaşmak için yararlı olabilir.
Hepsi bir örnek değişkeni DevTools'un görüntülendiğinde görsel dağınıklığı ilgili yani Bana göre bu mesele tamamen kozmetik olduğunu. Benim düzeltme daha sonra ana sınıfında örneği ve bir atanan başka bir sınıfın içine gruplandırmak özel bildirimleri etmektir privategibi bir adla (ama yine de JS herkese görünür) değişkenin __(çift alt çizgi).
Örnek:
class Privates {
readonly DEFAULT_MULTIPLIER = 2;
foo: number;
bar: number;
someMethod = (multiplier: number = this.DEFAULT_MULTIPLIER) => {
return multiplier * (this.foo + this.bar);
}
private _class: MyClass;
constructor(_class: MyClass) {
this._class = _class;
}
}
export class MyClass {
private __: Privates = new Privates(this);
constructor(foo: number, bar: number, baz: number) {
// assign private property values...
this.__.foo = foo;
this.__.bar = bar;
// assign public property values...
this.baz = baz;
}
baz: number;
print = () => {
console.log(`foo=${this.__.foo}, bar=${this.__.bar}`);
console.log(`someMethod returns ${this.__.someMethod()}`);
}
}
let myClass = new MyClass(1, 2, 3);
Ne zaman myClassörnek bunları düzgünce daraltılmış içinde gruplandırılan bkz yerine (düzgün refactored gerçek yaşam kodunda çok görsel dağınık alabilirsiniz) gerçekten kamu olanlarla karışmış tüm "özel" üyeleri görme, DevTools'un görüntülendiğinde __mülkiyet:
