在 TypeScript 中,枚举(Enums)是一种用于命名一组命名常量的数据类型。它提供了一种更友好的方式来使用常量值,并且可以帮助代码更清晰地表达意图。以下是 TypeScript 中枚举的基本概念和用法:

1. 数字枚举:
   最简单的枚举类型,每个成员都有一个关联的数字值,默认从0开始递增。
   enum Direction {
       Up,
       Down,
       Left,
       Right,
   }

   let up: Direction = Direction.Up;
   let down: Direction = Direction.Down;

2. 字符串枚举:
   每个成员都有一个关联的字符串值。
   enum Color {
       Red = "RED",
       Green = "GREEN",
       Blue = "BLUE",
   }

   let red: Color = Color.Red;

3. 异构枚举:
   枚举可以包含数字和字符串值,但不建议混合使用。
   enum Result {
       Success = 1,
       Error = "ERROR",
   }

4. 常数枚举:
   使用 const 修饰符定义的枚举,在编译阶段被删除,并且不能包含计算值。
   const enum Weekday {
       Monday,
       Tuesday,
       Wednesday,
       Thursday,
       Friday,
   }

   let day: Weekday = Weekday.Monday;

5. 反向映射:
   枚举成员名字到值的映射和值到名字的映射。
   enum Direction {
       Up,
       Down,
       Left,
       Right,
   }

   console.log(Direction.Up); // 输出: 0
   console.log(Direction[0]); // 输出: "Up"

6. 常量成员和计算成员:
   枚举成员可以是常量或者计算值。
   enum FileAccess {
       Read = 1,
       Write = 2,
       ReadWrite = Read | Write,
   }

7. 枚举成员类型和联合枚举:
   枚举成员可以作为类型使用,并且可以形成联合类型。
   enum ShapeKind {
       Circle,
       Square,
   }

   interface Circle {
       kind: ShapeKind.Circle;
       radius: number;
   }

   interface Square {
       kind: ShapeKind.Square;
       sideLength: number;
   }

   let circle: Circle = { kind: ShapeKind.Circle, radius: 10 };
   let square: Square = { kind: ShapeKind.Square, sideLength: 5 };

这些是 TypeScript 中枚举的一些基本概念和用法。枚举是一种有助于提高代码可读性的数据类型,特别适用于表示一组相关的命名常量。


转载请注明出处:http://www.zyzy.cn/article/detail/4699/TypeScript