一、TypeScript 类型断言的语法
1. <Type>value
let someValue: any = "Hello";
let strLength: number = (<string>someValue).length;
2. value as Type
let someValue: any = "Hello";
let strLength: number = (someValue as string).length;
3. as const断言
: 把字面量推断为更具体的类型
const arr = [1, 2, 3] as const;
4. 非空断言
:使用感叹号!后缀来断言一个变量不为null或undefined
let maybeValue: string | null = null;
let value: string = maybeValue!;
5. 断言函数
:确保参数符合特定类型,如果不符合就会抛出错误
function assertIsString(value: unknown): asserts value is string { if (typeof value!== "string") { throw new Error("Value is not a string"); }
}
6. 类型保护函数
返回一个布尔值,用于进行类型检查
function isString(value: unknown): value is string { return typeof value === "string";
}
类型断言的语法: 绕过编译器的类型
推断,处理那些类型不兼容
的情况。比如把一个对象赋值给一个更具体的类型,或者在碰到unknown类型时指定具体类型
注意 :类型断言不是随便就能用的。它有个条件,那就是实际类型与断言类型之间得存在兼容关系,也就是说实际类型可以是断言类型的子类型或者父类型。