# 枚举

WARNING

  • 数字枚举
  • 反向映射
  • 字符串枚举
  • 异构枚举
  • 枚举成员类型和联合枚举类型
  • 运行时的枚举
  • const enum

数字枚举

enum Status {
	Uploading,
	Success = 3, // 指定顺序
	Failed
}

console.log(Status.Uploading)
console.log(Status['Uploading'])

1
2
3
4
5
6
7
8
9

反向映射

enum Status {
	Uploading,
	Success = 3, // 指定顺序
	Failed
}

console.log(Status[3])
1
2
3
4
5
6
7

字符串枚举

enum Message {
	Error = 'sorry error',
	Success = 'success hahah',
	Failed = Error
}
console.log(Message.Error)
console.log(Message.Failed)

1
2
3
4
5
6
7
8

异构枚举,既包含字符串的值,又包含数字的值

enum Result {
	Failed = 0,
	Success = 'success'
}
1
2
3
4

枚举成员类型和联合枚举类型

  • 不带初始值的枚举成员
  • 字符串自变量
  • 数值自变量,或者是带符号的数值

以上3种情况都可以作为类型来使用


enum Animals {
	Dog = 1,
	Cat = 2
}

interface Dog {
	type: Animals.Dog
}

let dog : Dog = {
	// type: 1
	type: Animals.Dog
}

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15

联合枚举类型

enum Status2 {
	Off,
	On
}

interface Light {
	status: Status2
}

let light: Light = {
	status: Status2.On
}

1
2
3
4
5
6
7
8
9
10
11
12
13

const enum 会把枚举对象编译成js值

静态图片