Dart、Kotlin和Swift有一个惰性初始化关键字,主要出于可维护性的原因,可以避免使用可选类型。
// Using null safety:
class Coffee {
late String _temperature;
void heat() { _temperature = 'hot'; }
void chill() { _temperature = 'iced'; }
String serve() => _temperature + ' coffee';
}
TypeScript有什么等效功能?
最接近的是一个明确的赋值断言。这句话告诉我们;我知道看起来我没有初始化这个,但相信我,我初始化了;。
class Coffee {
private _temperature!: string; // Note the !
heat() { this._temperature = "hot"; }
chill() { this._temperature = "iced"; }
serve() {
return this._temperature + ' coffee';
}
}
请注意,当您使用类型断言时,您是在告诉typescript不要检查您的工作。如果您断言它已定义,但忘记实际调用使其定义的代码,那么typescript在编译时不会告诉您这一点,并且在运行时可能会出现错误。