在 TypeScript 中,为什么类字段上有感叹号?

Wal*_*lly 9 typescript

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

class MyDataApiResponse {
    name!: string
    age!: number
}
Run Code Online (Sandbox Code Playgroud)

Wal*_*lly 14

类字段上的感叹号称为明确赋值断言运算符。它告诉 TypeScript 编译器不要生成此错误:

错误 TS2564:属性没有初始值设定项,并且未在构造函数中明确分配。

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

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