在TypeScript中,为什么访问(get)属性只有一个setter才是错误?

时间:2016-10-12 01:09:47

标签: typescript

为什么这会编译? (TS v2.0.3)

class SetterOnly {
  set prop(v) {
    let x = this.prop;
  }
}

我希望this.prop生成编译时错误...

2 个答案:

答案 0 :(得分:7)

这是一个众所周知的问题:https://github.com/Microsoft/TypeScript/issues/814

  

我们绝对不会为只写属性而烦恼。这并不足以证明使用类型系统复杂化。

答案 1 :(得分:6)

TypeScript目前没有writeonly的概念。仅仅因为对它的需求不多。但它确实有readonly

class ReadOnly {
  get prop() {return 123}
}

const readonly = new ReadOnly();
readonly.prop = 123; // Error