学习Typescript(枚举类型)

146 阅读2分钟

在JavaScript中是没有枚举的概念的 TS帮我们定义了枚举这个类型

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

数字枚举 例如 红绿蓝Red=0,Green=1,Blue=2分别代表红色0 绿色为1 蓝色为2

image.png 这样写就可以实现枚举类型 因为ts定义的枚举中的每一个组员默认都是从0开始的所以也就是

image.png

增长枚举

image.png 如上我们定义了一个数字枚举 Red使用初始化为1 其余的成员会从1开始自动增长

字符串枚举 字符串枚举的概念很简单 在一个字符串枚举里 每个成员都必须使用用字符串字面量 或里那个外 一个字符串枚举类成员进行初始化

image.png

由于字符串枚举没有自增长的行为 字符串枚举可以很好的序列化 换句话说 如果你正在调试 并且必须要读一个数字枚举的运行时的值 这个值通常是很难读的 他并不能表达有用的信心 字符串枚举允许你提供一个运行时有意义的并且可读的值 独立于枚举成员的名字

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

image.png

接口枚举 定义一个枚举Types 定义一个接口A 他有一个属性red值为Types.yyds

声明对象的时候要遵循这个规则

image.png

const枚举 let和var都是不允许的声明只能用const 大多数情况下 枚举是十分有效的方案 然后在某种情况下需求很严格 伪类避免在额外生成的代码 上的开销和额外的非直接的对枚举成员的访问 我们可以通过使用const枚举 常量枚举通过在枚举上 使用const修饰符来定义 普通声明的枚举编译完是个对象

image.png const声明编译之后

反向映射 他包含了正向映射(name->value)和反向映射(value->name) 要注意的是 不会为字符串枚举成员生成反向映射

image.png