迟到相当于什么|懒惰 | TypeScript 中的 lateinit?
What is the equivalent of late | lazy | lateinit in TypeScript?
Dart、Kotlin 和 Swift 有一个惰性初始化关键字,可以让您避免使用 Optional 类型,主要是出于可维护性的原因。
// Using null safety:
class Coffee {
late String _temperature;
void heat() { _temperature = 'hot'; }
void chill() { _temperature = 'iced'; }
String serve() => _temperature + ' coffee';
}
TypeScript 有什么等价物?
最近的是 definite-assignment assertion。这告诉打字稿“我知道看起来我没有初始化它,但相信我,我做到了”。
class Coffee {
private _temperature!: string; // Note the !
heat() { this._temperature = "hot"; }
chill() { this._temperature = "iced"; }
serve() {
return this._temperature + ' coffee';
}
}
请注意,当您使用类型断言时,您是在告诉打字稿不要检查您的工作。如果你断言它已被定义,但你忘记实际调用使其被定义的代码,typescript 将不会在编译时告诉你这件事,你可能会在 运行 时间得到一个错误。
Dart、Kotlin 和 Swift 有一个惰性初始化关键字,可以让您避免使用 Optional 类型,主要是出于可维护性的原因。
// Using null safety:
class Coffee {
late String _temperature;
void heat() { _temperature = 'hot'; }
void chill() { _temperature = 'iced'; }
String serve() => _temperature + ' coffee';
}
TypeScript 有什么等价物?
最近的是 definite-assignment assertion。这告诉打字稿“我知道看起来我没有初始化它,但相信我,我做到了”。
class Coffee {
private _temperature!: string; // Note the !
heat() { this._temperature = "hot"; }
chill() { this._temperature = "iced"; }
serve() {
return this._temperature + ' coffee';
}
}
请注意,当您使用类型断言时,您是在告诉打字稿不要检查您的工作。如果你断言它已被定义,但你忘记实际调用使其被定义的代码,typescript 将不会在编译时告诉你这件事,你可能会在 运行 时间得到一个错误。