枚举类型

使用枚举 通过enum关键字定义我们的枚举

数字枚举

enum Types {
    Red,
    Green,
    Blue
}

红绿蓝 Red = 0 Green = 1 Blue= 2 分别代表红色0 绿色为1 蓝色为2 默认就是从0开始的

增长枚举

enum Types {
    Red = 1,
    Green,
    Blue
}

定义了一个数字枚举, Red使用初始化为 1。 其余的成员会从 1开始自动增长。 换句话说, Type.Red的值为 1, Green为 2, Blue为 3。

字符串枚举

enum Types {
    Red = 'red',
    Green = 'green',
    Blue = 'blue'
}

异构枚举

枚举可以混合字符串和数字成员

enum Types{
   No = 'No',
   Yes = 1,
}

接口枚举

enum Types {
    name,
    age
}
interface A {
    name: Types.name
}

let obj: A = {
    name: Types.name
}

const枚举

let和var都是不允许的声明只能使用const

const enum Types{
   No = 'No',
   Yes = 1,
}

const 声明的枚举会被编译成常量

反向映射

它包含了正向映射( name -> value)和反向映射( value -> name)

要注意的是 不会为字符串枚举成员生成反向映射。

enum Enum {
    fall
}

const a = Enum.fall
console.log(a)
const name = Enum[a]
console.log(name)
贡献者: mankueng