菜单
×
   ❮   
HTML CSS JAVASCRIPT SQL PYTHON JAVA PHP HOW TO W3.CSS C C++ C# BOOTSTRAP REACT MYSQL JQUERY EXCEL XML DJANGO NUMPY PANDAS NODEJS R TYPESCRIPT ANGULAR GIT POSTGRESQL MONGODB ASP AI GO KOTLIN SASS VUE DSA GEN AI SCIPY AWS CYBERSECURITY DATA SCIENCE
     ❯   

TypeScript 类型断言


在处理类型时,有时需要覆盖变量的类型,例如当库提供了不正确的类型时。

类型断言是覆盖类型的一种过程。


使用 as 进行类型断言

断言变量的一种直接方法是使用 as 关键字,它将直接更改给定变量的类型。

示例

let x: unknown = 'hello';
console.log((x as string).length);
自己动手试一试 »

类型断言实际上不会改变变量中的数据类型,例如,以下代码将无法按预期工作,因为变量 x 仍然是一个数字。

let x: unknown = 4;
console.log((x as string).length); // 打印 undefined,因为数字没有 length 属性

TypeScript 仍然会尝试对断言进行类型检查,以防止出现看似不正确的断言,例如,以下代码将抛出类型错误,因为 TypeScript 知道将字符串断言为数字是没有意义的,除非进行数据转换。

console.log((4 as string).length); // 错误:类型“number”到类型“string”的转换可能是一个错误,因为两种类型没有足够的重叠。如果这是故意的,请先将表达式转换为“unknown”。
下方的“强制断言”部分将介绍如何覆盖此限制。


使用 <> 进行类型断言

使用 <> 进行类型断言与使用 as 的效果相同。

示例

let x: unknown = 'hello';
console.log((<string>x).length);
自己动手试一试 »

此类型的断言在 TSX 中将不起作用,例如在处理 React 文件时。


w3schools CERTIFIED . 2022

获得认证!

完成 TypeScript 模块,做练习,参加考试,成为 W3Schools 认证!!

$45 报名

强制断言

要覆盖 TypeScript 在进行类型断言时可能抛出的类型错误,请先将变量断言为 unknown,然后再断言为目标类型。

示例

let x = 'hello';
console.log(((x as unknown) as number).length); // x 实际上不是数字,所以这里会返回 undefined
自己动手试一试 »

TypeScript 练习

通过练习来测试自己

练习

使用 as 关键字将“unknown”变量 myVar 断言为字符串。

let myVar: unknown = "Hello world!";
console.log(.length);

开始练习


×

联系销售

如果您想将 W3Schools 服务用于教育机构、团队或企业,请发送电子邮件给我们
sales@w3schools.com

报告错误

如果您想报告错误,或想提出建议,请发送电子邮件给我们
help@w3schools.com

W3Schools 经过优化,旨在方便学习和培训。示例可能经过简化,以提高阅读和学习体验。教程、参考资料和示例会不断审查,以避免错误,但我们无法保证所有内容的完全正确性。使用 W3Schools 即表示您已阅读并接受我们的使用条款Cookie 和隐私政策

版权所有 1999-2024 Refsnes Data。保留所有权利。W3Schools 由 W3.CSS 提供支持