簡體   English   中英

私有屬性的行為類似於 typescript 中的公共屬性

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM