类型检查是验证程序中类型约束是否正确的过程。类型检查既可以在程序编译时进行,即静态类型检查;也可以在程序运行时进行,即动态类型检查。TypeScript支持静态类型检查,JavaScript支持动态类型检查。
为了满足不同用户的需求,TypeScript提供了两种静态类型检查模式:
- 非严格类型检查(默认方式)。
- 严格类型检查。
非严格类型检查
非严格类型检查是TypeScript默认的类型检查模式。在该模式下,类型检查的规则相对宽松。例如,在非严格类型检查模式下不会对undefined值和null值做过多限制,允许将undefined值和null值赋值给string类型的变量。当进行JavaScript代码到TypeScript代码的迁移工作时,非严格类型检查是一个不错的选择,因为它能够让我们快速地完成迁移工作。
严格类型检查
该模式下的类型检查比较激进,会尽可能地发现代码中的错误。例如,在严格类型检查模式下不允许将undefined值和null值赋值给string类型的变量。启用严格类型检查模式能够最大限度地利用TypeScript静态类型检查带来的益处。从长远来讲,使用严格类型检查模式对提高代码质量更加有利,因此建议在新的工程中启用严格类型检查。
TypeScript提供了若干个与严格类型检查相关的编译选项,例如“--strictNullChecks”
和“--noImplicitAny”
等。
在学习TypeScript语言的过程中,推荐启用所有严格类型检查编译选项。如果使用TypeScript官网提供的在线代码编辑器,那么这些严格类型检查编译选项是默认开启的。如果使用本地开发环境,那么可以在工程的tsconfig.json配置文件中启用“--strict”
编译选项。示例如下:
{
"compilerOptions": {
"strict": true,
}
}
此例中,将“--strict”
编译选项设置为true将开启所有的严格类型检查编译选项。它包含了前面提到的“–strictNullChecks”和“–noImplicitAny”编译选项。
const coolcou: string = undefined;
console.log(coolcou);
运行结果:
酷客网相关文章:
评论前必须登录!
注册