ts中的key!(非空断言)写法是什么意思:
在 TypeScript 中,key!
这种写法通常表示一个非空断言(non-null assertion),它用来告诉编译器该变量的值不会为 null。
在 TypeScript 中,编译器有时会检查代码中的类型不匹配,例如将一个 null 值赋值给一个非空类型变量,此时编译器会发出错误提示。使用非空断言可以告诉编译器该变量的值不会是 null,从而避免编译错误。
例如,假设有一个函数 foo
返回一个字符串类型,它不会返回 null:
tsfunction foo(): string {
return 'hello';
}
const myString: string = foo()!;
在这个例子中,!
表示断言该值不会是 null,因此编译器不会检查 foo()
是否为 null,而会将其视为非空字符串。这个语法也可以用于表达式中的中间结果,例如:
tsconst myValue = myFunction()?.myProperty!;
在这个例子中,?
表示对 myFunction()
的返回值进行了可选链操作,如果 myFunction()
返回 null
或 undefined
,则整个表达式将返回 undefined
。而 !
表示断言 myProperty
不可能是 null
或 undefined
,因此编译器不会检查它的类型。