TypeScript 简单类型
TypeScript 支持一些你可能知道的简单类型(基本类型)。
JavaScript 和 TypeScript 中有三种主要的原始类型。
boolean
- true 或 false 值number
- 整数和浮点数string
- 文本值,例如 "TypeScript Rocks"
在 JavaScript 和 TypeScript 的后期版本中,还有 2 种不太常用的原始类型。
bigint
- 整数和浮点数,但允许比number
类型更大的负数和正数。symbol
用于创建全局唯一的标识符。
类型赋值
在创建变量时,TypeScript 主要有两种方式分配类型
- 显式
- 隐式
在下面的两个示例中,firstName
的类型都是 string
显式类型
显式 - 写出类型
let firstName: string = "Dylan";
自己试试 »
显式 类型赋值更易于阅读,并且更具目的性。
隐式类型
隐式 - TypeScript 会根据分配的值“猜测”类型
let firstName = "Dylan";
自己试试 »
注意:让 TypeScript “猜测”值的类型称为 推断。
隐式赋值强制 TypeScript 推断值。
隐式 类型赋值更简洁,输入速度更快,并且在开发和测试时经常使用。
类型赋值错误
如果数据类型不匹配,TypeScript 将抛出错误。
隐式 类型赋值会使 firstName
作为 string
变得不那么明显,但两者都会抛出错误
JavaScript 不会因类型不匹配而抛出错误。
无法推断
TypeScript 并不总是能够正确地推断变量的类型。在这种情况下,它会将类型设置为 any
,这将禁用类型检查。
示例
// 由于 JSON.parse 不知道它返回什么类型的数据,所以它可以是“任何”东西...
const json = JSON.parse("55");
// 大多数情况下,预计 json 为对象,但它可以像此示例一样为字符串或数字
console.log(typeof json);
自己试试 »
可以通过在 TypeScript 项目的 tsconfig.json
中启用 noImplicitAny
选项来禁用此行为。这是一个 JSON 配置文件,用于自定义 TypeScript 的某些行为。
注意:你可能会看到基本类型大写,例如 Boolean
。
boolean !== Boolean
在本教程中,只需了解使用小写值即可,大写值仅用于非常特定的情况。