枚举(Enum)类型用于取值被限定在一定范围内的场景,比如一周只能有七天,颜色限定为红绿蓝等。
enum Days {Sun, Mon, Tue, Wed, Thu, Fri, Sat};// 会编译为var Days;(function (Days) {Days[Days["Sun"] = 0] = "Sun";Days[Days["Mon"] = 1] = "Mon";Days[Days["Tue"] = 2] = "Tue";Days[Days["Wed"] = 3] = "Wed";Days[Days["Thu"] = 4] = "Thu";Days[Days["Fri"] = 5] = "Fri";Days[Days["Sat"] = 6] = "Sat";})(Days || (Days = {}));
常数枚举
常数枚举是使用 const enum 定义的枚举类型:
const enum Directions {Up,Down,Left,Right}let directions = [Directions.Up, Directions.Down, Directions.Left, Directions.Right];// 会编译为var directions = [0 /* Up */, 1 /* Down */, 2 /* Left */, 3 /* Right */];
外部枚举
外部枚举(Ambient Enums)是使用 declare enum 定义的枚举类型:
declare enum Directions {Up,Down,Left,Right}let directions = [Directions.Up, Directions.Down, Directions.Left, Directions.Right];//// 会编译为var directions = [Directions.Up, Directions.Down, Directions.Left, Directions.Right];
