【发布时间】:2020-05-09 01:23:22
【问题描述】:
在以下示例中:
class Foo {
private _bar: number;
constructor(bar: number) {
this.bar = bar;
}
set bar(bar: number) {
this._bar = bar;
}
}
TypeScript 抱怨
属性“_bar”没有初始化器,也没有在构造函数中明确赋值。
我假设 TypeScript 足够智能,可以检测到属性是通过 setter 设置的,但显然不是。
我可以通过更改构造函数中的赋值来设置this._bar 本身来解决这个问题,但是对于一个类来说使用它自己的getter 和setter 是一种很好的做法,这个修复会绕过它。有没有其他方法可以解决这个问题?
【问题讨论】:
-
你是否使用了
this._bar!: number,而不是this._bar: number,这告诉TypeScript你将在构造函数以外的地方定义这个变量,如果这个变量可能被定义,也可能没有被定义,那么@ 987654325@,会更好地使用语法。
标签: typescript