TypeScript入门到精通——类型系统基础——类型检查

发布时间 2023-10-02 22:49:04作者: 左扬

TypeScript类型系统基础——类型检查

  类型检查是检查程序中类型约束是否正确的过程。类型检查既可以在程序编译时进行,静态类型检查;也可以在程序运行时进行,即动态类型检查。TypeScript 支持静态类型检查,JavaScript 支持动态类型检查。

  为了满足不同用户的需求,TypeScript 提供了 两种 静态类型检查模式:

    • 非严格类型检查(默认方式)
    • 严格类型检查

1.1、非严格类型检查

  在非严格模式下,TypeScript 的类型检查相对较为宽松。如果你为变量声明了一个类型,但赋值给了另一种类型,TypeScript 可能会允许这样的操作,而不会抛出错误。此外,非严格模式还允许某些在严格模式下会被认为是错误的操作。 

let num: number = "hello"; // 在非严格模式下,这不会引发错误

2.2、严格模式

  相比之下,严格模式的类型检查更为严格。如果你为变量声明了一个类型,但赋值给了另一种类型,TypeScript 将抛出错误。这有助于在编译阶段捕获更多的类型错误,从而提高代码的质量。

  要启用严格模式,你需要在你的tsconfig.json文件中设置"strict": true。这将会启用一系列严格的类型检查选项,包括noImplicitAnystrictNullChecksstrictFunctionTypesstrictBindCallApply等。

let num: number = "hello"; // 在严格模式下,这会引发错误

  在这个例子中,我们声明了一个类型为number的变量num,但我们试图将一个字符串"hello"赋值给它。在严格模式下,TypeScript 会抛出错误,因为这个赋值操作违反了变量的类型约束。

  使用严格模式可以帮助你编写更可靠、更易于维护的代码,因为它能够在编译阶段捕获更多的类型错误。然而,这也可能需要你投入更多的时间来处理类型错误和进行类型注解。