【问题标题】:In TypeScript, why an exclamation mark on a class field?在 TypeScript 中,为什么类字段上有感叹号?
【发布时间】:2022-08-17 05:05:45
【问题描述】:

在 TypeScript 中,类字段属性上的感叹号的目的是什么?

class MyDataApiResponse {
    name!: string
    age!: number
}

    标签: typescript


    【解决方案1】:

    类字段上的感叹号称为definite assignment assertion operator。它告诉 TypeScript 编译器不要产生这个错误:

    错误 TS2564:属性没有初始化程序,并且未在构造函数中明确分配。

    要查看该错误,请从字段中删除感叹号并使用--strict 选项进行编译。

    如果您知道字段将由构造函数以外的其他对象初始化,这将很有用。 (例如,通过 JSON 反序列化。)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-05-03
      • 1970-01-01
      • 2011-12-22
      • 2018-11-14
      • 1970-01-01
      • 2021-11-02
      • 2011-05-21
      相关资源
      最近更新 更多