手册
目录
一种直接的类型转换方法是使用 as 关键字,这将直接改变给定变量的类型。
let x: unknown = 'hello'; console.log((x as string).length);
类型转换实际上并不会改变变量内部数据的类型,例如,以下代码将无法按预期工作,因为变量 x 仍然包含一个数字。
let x: unknown = 4; console.log((x as string).length); // 打印 undefined,因为数字没有长度
TypeScript 仍然会尝试进行类型检查以防止看似不正确的类型转换,例如,以下将抛出类型错误,因为 TypeScript 知道在不转换数据的情况下,将字符串转换为数字是没有意义的:
console.log((4 as string).length); // 错误:将类型“number”转换为类型“string”可能是一个错误,因为两种类型之间没有足够的重叠。如果这是有意的,请首先将表达式转换为“unknown”。
下面的“强制类型转换”部分介绍了如何重写这一点。
使用 <> 与使用 as 进行类型转换的效果相同。
let x: unknown = 'hello'; console.log((x).length);
这种类型的类型转换在 TSX 中不起作用,例如在处理 React 文件时。
为了重写 TypeScript 在进行类型转换时可能抛出的类型错误,请首先将类型转换为 unknown,然后再转换为目标类型。
let x = 'hello'; console.log(((x as unknown) as number).length); // x 实际上不是一个数字,所以这将返回 undefined
相关
视频
RELATED VIDEOS
科技资讯
1
2
3
4
5
6
7
8
精选课程
共5课时
17.2万人学习
共49课时
77万人学习
共29课时
61.7万人学习
共25课时
39.3万人学习
共43课时
70.9万人学习
共25课时
61.6万人学习
共22课时
23万人学习
共28课时
33.9万人学习
共89课时
125万人学习