[英]Private properties are behaving like public properties in typescript
我在下面的代碼中復制了我在使用 typescript 中的私有屬性時遇到的問題。
預期行為:在我的 object output 中,只有公共屬性應該可見,就像在正常封裝中一樣。
我的目標是使具有 setter 和 getter 的屬性成為我的 class 的暴露 api 的一部分,而不是私有屬性(如在 C# 中)
class MyClass {
public otherProp: boolean;
constructor() {
this.otherProp = false;
this._privateProp = false;
}
private _privateProp: boolean;
get publicProp() : boolean {
return this._privateProp;
}
set publicProp(values : boolean) {
this._privateProp = values;
}
}
let x: MyClass = new MyClass();
console.log(x); // MyClass {otherProp: false, _privateProp: false}
// Expected output: MyClass {otherProp: false, publicProp: false}
您使用#
將屬性標記為私有:
class MyClass {
public otherProp: boolean;
constructor() {
this.otherProp = false;
this.#_privateProp = false;
}
#_privateProp: boolean;
get publicProp() : boolean {
return this.#_privateProp;
}
set publicProp(values : boolean) {
this.#_privateProp = values;
}
}
let x: MyClass = new MyClass();
console.log(x); // MyClass {otherProp: false}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.