数组 Array

TypeScript像JavaScript一样可以操作数组元素。 有两种方式可以定义数组。

第一种,可以在元素类型后面接上[],表示由此类型元素组成的一个数组

  1. let list: number[] = [1, 2, 3];

第二种方式是使用数组泛型,Array<元素类型>:

  1. let list: Array<number> = [1, 2, 3];

元组 Tuple

元组类型允许表示一个已知元素数量和类型的数组,各元素的类型不必相同。 比如,你可以定义一对值分别为string和number类型的元组。

  1. let x: [string, number];
  2. x = ['hello', 10]; // OK
  3. x = [10, 'hello']; // Error

枚举 enum

枚举类型用于取值被限定在一定范围内的场景,如一周只有7天,一年只有4季等。

枚举初始化

枚举初始化可以理解为给枚举成员赋值。每个枚举成员都需要带有一个值,在未赋值的情况下, 枚举成员会被赋值为从 0 开始, 步长为 1 递增的数字

  1. enum Direction {
  2. Up,
  3. Down,
  4. Left,
  5. Right
  6. }
  7. console.log(Direction.Up); // 0
  8. console.log(Direction.Down); // 1
  9. console.log(Direction[0]); // Up

字符串枚举

  1. enum Direction {
  2. Up = "Up",
  3. Down = "Down",
  4. Left = "Left",
  5. Right = "Right"
  6. }
  7. const value = "Up";
  8. console.log(Direction.Up === value); // true

常量枚举

常量枚举与普通枚举的区别是,它会在编译阶段被删除,并且不能包含计算成员,提升了性能,会内联枚举的用法,并且不会吧内联编译成javascript代码。

  1. const enum Direction {
  2. Up = "Up",
  3. Down = "Down",
  4. Left = "Left",
  5. Right = "Right"
  6. }
  7. const value = "Up";
  8. console.log(Direction.Up === value);

编译后

  1. var value = "Up";
  2. console.log("Up" /* Up */ === value);