类型⚡️

TypeScript 提供了以下基本类型:

  • 布尔(boolean)
  • 数字(number)
  • 字符串(string)
  • 数组(array)
  • 元组(tuple)
  • 枚举(enum)
  • 任意值(any)
  • null 和 undefined
  • void
  • never

其中元组、枚举、任意值、void和never类型是 TypeScript 特有的。

元组类型

元组类型用于表示已知元素类型和数量的数组,各类型不必相同。

  1. let x: [string, number];
  2. x= ['angular', 25];
  3. x= [25, 'angular']; //报错

枚举类型

枚举是一个可被命名的整型常数的集合,枚举类型为集合成员赋予有意义的名称,增强可读性。

  1. enum week{ Mon, Tues, Wed, Thurs, Fri, Sat, Sun };
  2. let Wed: week = Color.Wed;
  3. console.log(Wed) // 2

枚举值默认从 0 开始,往后逐个加 1(递增);也就是说,week 中的 Mon、Tues …… Sun 对应的值分别为 0、1 …… 6。也可以给每个名字都指定一个值,但大多数我们给第一个名字指定值就可以了enum week{ Mon = 1, Tues, Wed, Thurs, Fri, Sat, Sun };

任意值类型和void类型

任意值是TypeScript针对类型不明确的变量使用的一种数据类型。

void表示没有任何类型。例如一个函数没有返回值时,那他返回的的类型是void。

never类型

never 是所有类型的子类型,代表从来不会出现的值的类型。

  1. // 返回 never 的函数必须有无法被执行到的终止点
  2. function error(message: string): never {
  3. throw new Error(message);
  4. }
  5. // 推断的返回值是 never
  6. function fail() {
  7. return error("一些东西失败了");
  8. }
  9. // 返回 never 的函数必须有无法被执行到的终止点
  10. function infiniteLoop(): never {
  11. while (true) {
  12. }
  13. }

精明的读者可能会想知道当TypeScript程序员需要调用没有类型信息的JavaScript模块接口时会发生什么。 TypeScript将标记为 *.d.ts 的文件视为定义文件。 这些文件旨在使用TypeScript来描述由JavaScript库提供的接口。

在TypeScript 2.0中,用户可以直接从@types通过npm获取类型文件(例如,npm install --save @types/lodash将安装lodash类型文件)。