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
在本教程中,只需知道使用小写值,大写值仅用于非常特定的情况。