TypeScript 基础类型

TypeScript 支持一些您可能知道的简单类型(基础)。

JavaScript 和 TypeScript 中有三个主要基础类型。

  • 布尔值 - true 或 false
  • 数字 - 整数和浮点值
  • 字符串 - 文本值,如 "TypeScript Rocks"

类型赋值

创建变量时,TypeScript 赋值类型的主要方式有两种:

  • 显式
  • 隐式

在下面的两个例子中,firstName 的类型都是 string:

显式类型

显式 - 写出类型:

  1. let firstName: string = "Dylan"; // 字符串类型
  2. console.log(typeof firstName);

显式类型赋值更容易理解,也更具目的性。


隐式类型

隐式 - TypeScript 将根据指定的值 "猜测" 类型:

  1. let firstName = "Dylan";
  2. console.log(typeof firstName);
注意:使用 TypeScript "猜测" 值的类型称为推断。

隐式赋值强制 TypeScript 推断值。

隐式类型赋值更短、更快,并且在开发和测试时经常使用。


类型赋值中的错误

如果数据类型不匹配,TypeScript 将抛出错误。

  1. let firstName: string = "Dylan"; // 字符串类型
  2. firstName = 33; // 尝试将该值重新赋值其他类型
  3. console.log(firstName);

隐式类型赋值会使 firstName 作为字符串不那么引人注目,但两者都会引发错误:

  1. let firstName = "Dylan"; // 推断为字符串类型
  2. firstName = 33; // 尝试将该值重新赋值其他类型
  3. console.log(firstName);

JavaScript 不会对不匹配的类型抛出错误。


无法推断

TypeScript 并不总是正确地推断变量的类型。在这种情况下,它会将类型设置为任何禁用类型检查的类型。

  1. // 隐式对于 JSON.pars 不知道它返回什么类型的数据,所以它可以是 "任何" 类型...
  2. const json = JSON.parse("55");
  3. // 大多情况下 json 是一个对象,但它也可以是一个字符串或一个数字
  4. console.log(typeof json);

通过在 TypeScript 的项目 tsconfig.json 中启用 noImplicitAny 作为选项,可以禁用此行为。这是一个 JSON 配置文件,用于自定义某些 TypeScript 的行为。

注意:您可能会看到像 Boolean 一样大写的基本类型。

boolean !== Boolean

在本教程中,只需知道如何使用小写值,大写值适用于非常特定的情况。