微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

晚点是什么意思?懒惰|打字稿中的lateinit?

如何解决晚点是什么意思?懒惰|打字稿中的lateinit?

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';
  }
}

请注意,当您使用类型断言时,您是在告诉打字稿不要检查您的工作。如果你犯了错误,打字稿不会告诉你。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。