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
,这将禁用类型检查。
示例
// 隐式的 any,因为 JSON.parse 不知道它返回什么类型的数据,所以它可以是“任何”东西...
const json = JSON.parse("55");
// 大多数人期望 json 是一个对象,但它也可以是字符串或数字,就像这个例子一样
console.log(typeof json);
自己动手试一试 »
可以通过在 TypeScript 项目的 tsconfig.json
中将 noImplicitAny
设置为选项来禁用此行为。这是一个 JSON 配置文件,用于自定义 TypeScript 的行为。
注意:您可能会看到原始类型大写,例如 Boolean
。
boolean !== Boolean
在本教程中,您只需知道使用小写值即可,大写值用于非常特定的情况。