代码之家  ›  专栏  ›  技术社区  ›  Curtis stepd

typescript中是否需要访问器?

  •  2
  • Curtis stepd  · 技术社区  · 6 年前

    我了解OOP中封装的重要性,访问器(getter/setter)提供了这种抽象级别。

    但是,使用typescript,我可以在以后用相同名称的访问器替换我的属性,并将我的属性重命名为带下划线的前缀(因此不会导致中断更改)。

    例如,我可以有:

    class foo {
    
      name: string;
    
    }
    

    稍后,如果我希望向此属性添加访问器,我可以更改为以下内容:

    class foo {
    
      private _name: string;
    
      get name():boolean {
        return this._name;
      }
    
      set name(name: string) {
        this._name = name;
      }
    
    }
    

    这被认为是不好的做法吗?

    在此上下文中,访问器的目的是什么?

    1 回复  |  直到 5 年前
        1
  •  4
  •   artem    5 年前

    program to the interface, not to the implementaion foo

    interface foo {
        name: string;
    }