Menu
×
   ❮   
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,因为数字没有长度

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);

开始练习


×

Contact Sales

If you want to use W3Schools services as an educational institution, team or enterprise, send us an e-mail:
[email protected]

Report Error

If you want to report an error, or if you want to make a suggestion, send us an e-mail:
[email protected]

W3Schools is optimized for learning and training. Examples might be simplified to improve reading and learning. Tutorials, references, and examples are constantly reviewed to avoid errors, but we cannot warrant full correctness of all content. While using W3Schools, you agree to have read and accepted our terms of use, cookie and privacy policy.

Copyright 1999-2024 by Refsnes Data. All Rights Reserved. W3Schools is Powered by W3.CSS.