用来手动指定一个值的类型,允许开发者在某个位置“绕过”编译器的类型推断,让本来通不过类型检查的代码能够通过,避免编译器报错
类型断言的使用前提是:实际的类型与断言的类型兼容,并且类型断言只能够「欺骗」TypeScript 编译器,无法避免运行时的错误
as
将变量断言为某个类型:value as Type
as const
将变量断言为常量:let s = 'JavaScript' as const
非空断言
对于那些可能为空的变量,表示该变量不可能是 null
或 undefined
type Person = {
name: string;
age: number;
}
function myfunc(obj: Person | null): string {
return `hello world, ${obj!.name}: ${obj!.age}` // 告诉 ts 不可能为 null,避免报错
}