【问题标题】:WebStorm - Typescript Getter for readonly properties - No fields without getter and setter have been foundWebStorm - 只读属性的 Typescript Getter - 没有找到没有 getter 和 setter 的字段
【发布时间】:2018-02-13 20:03:13
【问题描述】:

我尝试为以下类生成 getter 方法:

export class v{
  private readonly _a:number;
  private readonly _b;
  private readonly _c:number;
  private readonly _d:string;

  constructor(a:number, b, c:number,d:string){
      this._a=a;
      this._b=b;
      this._c=c;
      this._d=d;
  }
}

但是 Webstorm 打印以下错误:没有找到没有 getter 和 setter 的字段`

如果向类添加非readonly 属性(例如private _e:string;),Webstorm 将能够为该属性生成getter/setter。

这是 Webstorm 的 bug 还是无法为类的只读属性生成 getter 方法?


更新

在这个MWE 中,您可以看到可以为private readonly 属性定义getter。

class V{
  private readonly _a:number;
  private readonly _b;

  get b(): string {
    return this._b;
  }

  constructor(a:number, b){
      this._a=a;
      this._b=b;
  }
}

var testObject = new V(123, "test");

console.log(testObject.b);

【问题讨论】:

  • 如果一个属性是只读的,你不能写入它,所以你不能给它设置一个值。只是打字稿。在构造函数中设置readonly 属性,或者使用带有getter 和setter 的private(或protected)。你也可以试试private getter 和 setter。
  • 我知道我无法写入readonly 属性。但我可以阅读它,因此我为什么不应该为这个 readonly 属性创建一个 getter??
  • @hlfrmn 构造 v 类的对象与上面的构造函数一起使用。
  • 我明白了,你应该能够声明一个吸气剂是有道理的。在我的 WebStorm 中也不起作用。

标签: typescript webstorm


【解决方案1】:

目前是 WebStorm 中的一个错误。

here

【讨论】:

    猜你喜欢
    • 2020-05-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-28
    • 1970-01-01
    • 1970-01-01
    • 2012-12-14
    • 1970-01-01
    相关资源
    最近更新 更多