- 将联合类型缩小为更具体的类型:
- 场景:当一个变量可能是多种类型之一,而你确定在某个特定时刻它是其中一种具体类型时。
- 示例代码:
let value: string | number;
value = "hello";
// 使用类型断言将联合类型缩小为string类型
let length: number = (value as string).length;
- 绕过类型检查,在已知类型但编译器无法推断时:
- 场景:在调用一些第三方库函数时,编译器可能无法正确推断返回值类型,但你明确知道其类型。
- 示例代码:
// 假设document.getElementById返回的类型是any
// 我们知道它返回的是HTMLInputElement类型
let input = document.getElementById('myInput') as HTMLInputElement;
input.value = 'test';
- 在泛型函数中指定类型:
- 场景:在泛型函数里,当想明确使用某个具体类型而不是让编译器自动推断时。
- 示例代码:
function identity<T>(arg: T): T {
return arg;
}
// 使用类型断言指定泛型类型为number
let result = identity<number>(10) as number;
- 断言为
null
或undefined
类型:
- 场景:当你确定某个值可能为
null
或undefined
,并且想进行相应处理时。
- 示例代码:
let maybeNull: string | null = null;
// 断言为null类型
let isNull = (maybeNull as null) === null;