TypeScript 简单类型

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

在 JavaScript 和 TypeScript 中有三种主要的基本类型。

  • boolean - 真或假的值
  • number - 整数值和浮点数值
  • string - 文本值,如 "TypeScript Rocks"

在后续版本的 Javascript 和 TypeScript 中还使用了两种不太常见的基本类型。

  • bigint - 整数值和浮点数值,但与 number 类型相比,它允许更大的负数和正数
  • symbol - 用于创建全局唯一标识符

类型分配

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

  • 显式
  • 隐式

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

显式类型

显式 - 写出类型:

let firstName: string = "Dylan";

亲自试一试

显式类型分配更易于阅读,更具意图性。

隐式类型

隐式 - TypeScript 将根据分配的值“猜测”类型:

let firstName = "Dylan";

亲自试一试

注意:让 TypeScript “猜测”一个值的类型称为 infer(推断)。

隐式赋值强制 TypeScript 推断该值。

隐式类型分配更短,输入更快,通常在开发和测试时使用。

类型分配错误

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

实例

let firstName: string = "Dylan"; // string 类型
firstName = 33; // 尝试将值重新分配为不同类型

亲自试一试

隐式类型分配会使 firstName 作为 string 不那么明显,但两者都会抛出一个错误:

实例

let firstName = "Dylan"; // 推断为 string 类型
firstName = 33; // 尝试将值重新分配为不同类型

亲自试一试

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

无法推断

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

实例

// 隐式的 any,因为 JSON.parse 不知道它返回的数据类型,所以它可以是“任何”东西...
const json = JSON.parse("55");
// 大多数人期望 json 是对象,但在此例中,它也可以是字符串或数字
console.log(typeof json);

亲自试一试

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

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

boolean !== Boolean

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