【发布时间】: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)。你也可以试试privategetter 和 setter。 -
我知道我无法写入
readonly属性。但我可以阅读它,因此我为什么不应该为这个readonly属性创建一个 getter?? -
@hlfrmn 构造
v类的对象与上面的构造函数一起使用。 -
我明白了,你应该能够声明一个吸气剂是有道理的。在我的 WebStorm 中也不起作用。
标签: typescript webstorm