TypeScript 简单类型
TypeScript 支持一些您可能知道的简单类型(原始类型)。 JavaScript 和 TypeScript 中有三个主要原语。
boolean
- 真值或假值number
- 整数和浮点值string
- 文本值如“TypeScript Rocks”
Javascript 和 TypeScript 的后续版本中还使用了 2 个不太常见的原语。
bigint
- 整数和浮点值,但允许比number
类型更大的负数和正数。symbol
用于创建全局唯一标识符。
类型分配
创建变量时,TypeScript 分配类型主要有两种方式:
- 显式
- 隐式
下面两个例子中firstName
的类型为string
显式类型
明确——写出类型:
let firstName: string = "Dylan";
明确的类型分配更易于阅读且更具目的性。
隐式类型
隐式- TypeScript 将根据分配的值“猜测”类型:
let firstName = "Dylan";
注意:让 TypeScript“猜测”一个值的类型称为推断。 隐式赋值强制 TypeScript推断该值。 隐式类型分配更短,输入速度更快,并且经常在开发和测试时使用。
类型赋值错误
如果数据类型不匹配,TypeScript 将抛出错误。
例子
let firstName: string = "Dylan"; // type string
firstName = 33; // attempts to re-assign the value to a different type
隐式类型分配本来会变firstName
得不那么引人注意string
,但两者都会引发错误:
例子
let firstName = "Dylan"; // inferred to type string
firstName = 33; // attempts to re-assign the value to a different type
JavaScript不会因为类型不匹配而抛出错误。
无法推断
TypeScript 可能无法始终正确推断变量的类型。在这种情况下,它会将类型设置为any
禁用类型检查。
例子
// Implicit any as JSON.parse doesn't know what type of data it returns so it can be "any" thing...
const json = JSON.parse("55");
// Most expect json to be an object, but it can be a string or a number like this example
console.log(typeof json);
noImplicitAny
可以通过在 TypeScript 的项目中启用选项来禁用此行为tsconfig.json
。这是一个 JSON 配置文件,用于自定义某些 TypeScript 行为。
注意:您可能会看到大写的原始类型,如Boolean
。
boolean !== Boolean
对于本教程,只需知道使用小写的值,大写的值用于非常特殊的情况。