TypeScript 基础类型
TypeScript 支持一些您可能知道的简单类型(基础)。
JavaScript 和 TypeScript 中有三个主要基础类型。
- 布尔值 - true 或 false
- 数字 - 整数和浮点值
- 字符串 - 文本值,如 "TypeScript Rocks"
类型赋值
创建变量时,TypeScript 赋值类型的主要方式有两种:
- 显式
- 隐式
在下面的两个例子中,firstName
的类型都是 string:
显式类型
显式 - 写出类型:
let firstName: string = "Dylan"; // 字符串类型
console.log(typeof firstName);
显式类型赋值更容易理解,也更具目的性。
隐式类型
隐式 - TypeScript 将根据指定的值 "猜测" 类型:
let firstName = "Dylan";
console.log(typeof firstName);
注意:使用 TypeScript "猜测" 值的类型称为推断。
隐式赋值强制 TypeScript 推断值。
隐式类型赋值更短、更快,并且在开发和测试时经常使用。
类型赋值中的错误
如果数据类型不匹配,TypeScript 将抛出错误。
let firstName: string = "Dylan"; // 字符串类型
firstName = 33; // 尝试将该值重新赋值其他类型
console.log(firstName);
隐式类型赋值会使 firstName
作为字符串不那么引人注目,但两者都会引发错误:
let firstName = "Dylan"; // 推断为字符串类型
firstName = 33; // 尝试将该值重新赋值其他类型
console.log(firstName);
JavaScript 不会对不匹配的类型抛出错误。
无法推断
TypeScript 并不总是正确地推断变量的类型。在这种情况下,它会将类型设置为任何禁用类型检查的类型。
// 隐式对于 JSON.pars 不知道它返回什么类型的数据,所以它可以是 "任何" 类型...
const json = JSON.parse("55");
// 大多情况下 json 是一个对象,但它也可以是一个字符串或一个数字
console.log(typeof json);
通过在 TypeScript 的项目 tsconfig.json
中启用 noImplicitAny 作为选项,可以禁用此行为。这是一个 JSON 配置文件,用于自定义某些 TypeScript 的行为。
注意:您可能会看到像 Boolean 一样大写的基本类型。boolean !== Boolean在本教程中,只需知道如何使用小写值,大写值适用于非常特定的情况。