TypeScript 简单类型

TypeScript 支持一些你可能知道的简单类型(原语)。

在 JavaScript 和 TypeScript 中有三个主要的原语。

  • boolean - true 或 false 值
  • number - 整数和浮点值
  • string - 文本值,例如 "TypeScript Rocks"

类型分配

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

  • 显式
  • 隐式

在下面的两个实例中,firstName 的类型为 string


显式类型

显式 - 写出类型:

let firstName: string = "Dylan";
亲自试一试 »

显式类型分配更易于阅读且更有针对性。


隐式类型

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

let firstName = "Dylan";
亲自试一试 »

注意:让 TypeScript "猜测"值的类型称为 infer

隐式赋值强制 TypeScript 推断值。

隐式类型分配更短、键入速度更快,并且经常在开发和测试时使用。


类型分配错误

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

实例

let firstName: string = "Dylan"; // type string
firstName = 33; // 尝试将值重新分配给不同的类型
亲自试一试 »

隐式类型分配会使 firstName 作为 string 不那么引人注目 ,但两者都会抛出错误:

实例

let firstName = "Dylan"; // 推断为字符串类型
firstName = 33; // 尝试将值重新分配给不同的类型
亲自试一试 »

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


无法推断

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

实例

// 隐含任何作为 JSON.parse 不知道它返回什么类型的数据,所以它可以是"任何"的东西......
const json = JSON.parse("55");
// 大多数人期望 json 是一个对象,但它可以是一个字符串或一个数字,例如这个例子
console.log(typeof json);
亲自试一试 »

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

注意:您可能会看到原始类型大写,例如 Boolean

boolean !== Boolean
对于本教程,只知道使用小写值,大写值用于非常特殊的情况。< /p>


TypeScript 练习

学习训练

训练:

TypeScript 分配类型的主要方式有两种:




开始训练