# 枚举
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
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
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
2
3
4
5
6
7
8
异构枚举,既包含字符串的值,又包含数字的值
enum Result {
Failed = 0,
Success = 'success'
}
1
2
3
4
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
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
2
3
4
5
6
7
8
9
10
11
12
13
const enum 会把枚举对象编译成js值
