Kev*_*vin 6 lazy-initialization typescript
我习惯了 Swifts 的可选值,并且看到 TypeScript 有类似的东西。对于诸如属性的延迟初始化之类的事情,拥有一个私有属性nullable和一个public在请求时初始化值的getter 会很好。
class Test {
private _bar: object:null = null;
get bar(): object {
if (_bar === null) {
_bar = { };
}
return _bar;
}
}
Run Code Online (Sandbox Code Playgroud)
我知道我可以为此使用 undefined 并从私有成员中删除可为空的类型信息,但我想知道是否有一种方法可以做到这一点而不必永远携带该属性的空值。我将从一个我想要处理空值的地方到一个我不再希望强迫任何人处理可空值的边界。
您可以在 TypeScript 中执行此操作,如下所示:
class Test {
private _bar?: object;
get bar(): object {
if (this._bar === undefined) {
this._bar = { };
}
return this._bar;
}
}
Run Code Online (Sandbox Code Playgroud)
通常,在 TypeScript 中使用 undefined 而不是 null 更为惯用。
| 归档时间: |
|
| 查看次数: |
5214 次 |
| 最近记录: |