On this page

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 行为。

注意:您可能会看到大写的原始类型,如Booleanboolean !== Boolean 对于本教程,只需知道使用小写的值,大写的值用于非常特殊的情况。