菜单
×
   ❮   
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 特殊类型


TypeScript 具有可能不指向任何特定数据类型的特殊类型。


类型:any

any 是一个禁用类型检查并允许使用所有类型的类型。

下面的示例未使用 any,并且会引发错误

不使用 any 的示例

let u = true;
u = "string"; // Error: Type 'string' is not assignable to type 'boolean'.
Math.round(u); // Error: Argument of type 'boolean' is not assignable to parameter of type 'number'.
自己动手试一试 »

any 设置为特殊类型 any 会禁用类型检查

使用 any 的示例

let v: any = true;
v = "string"; // no error as it can be "any" type
Math.round(v); // no error as it can be "any" type
自己动手试一试 »

any 可以是绕过错误的一种有用方式,因为它禁用了类型检查,但 TypeScript 将无法提供类型安全性,并且依赖于类型数据的工具(如自动完成)将无法工作。记住,应“不惜一切代价”避免使用它……


类型:unknown

unknownany 的一个相似但更安全的选择。

TypeScript 会阻止使用 unknown 类型,如下面的示例所示

let w: unknown = 1;
w = "string"; // no error
w = {
  runANonExistentMethod: () => {
    console.log("I think therefore I am");
  }
} as { runANonExistentMethod: () => void}
// 当我们不知道类型时,如何避免注释掉的代码中的错误?
// w.runANonExistentMethod(); // Error: Object is of type 'unknown'.
if(typeof w === 'object' && w !== null) {
  (w as { runANonExistentMethod: Function }).runANonExistentMethod();
}
// 尽管我们必须多次进行类型断言,但我们可以通过 if 语句进行检查以确保我们的类型安全并进行更安全的类型断言
自己动手试一试 »

将上面的示例与前面的 any 示例进行比较。

unknown 最适合用于你不知道数据类型的时。要稍后添加类型,你需要进行类型断言。

类型断言是当我们使用 "as" 关键字来说明属性或变量是已断言类型时。


w3schools CERTIFIED . 2022

获得认证!

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

$45 报名

类型:never

never 在定义时实际上会引发错误。

let x: never = true; // Error: Type 'boolean' is not assignable to type 'never'.
自己动手试一试 »

never 很少使用,尤其是单独使用时,它的主要用途是在高级泛型中。


类型:undefined & null

undefinednull 是分别指向 JavaScript 原语 undefinednull 的类型。

let y: undefined = undefined;
let z: null = null;
自己动手试一试 »

除非在 tsconfig.json 文件中启用了 strictNullChecks,否则这些类型的用途不大。


TypeScript 练习

通过练习来测试自己

练习

创建一个空的“myVar”变量,并禁用类型检查

let myVar: ;
        

开始练习


×

联系销售

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

报告错误

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

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

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