You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
枚举类型的值其实也可以是字符串类型:enumDirection{Up='Up',Down='Down',Left='Left',Right='Right'}console.log(Direction['Right'],Direction.Up);// Right Up
如果设定了一个变量为字符串之后,后续的字段也需要赋值字符串,否则报错:
enumDirection{Up='UP',Down,// error TS1061: Enum member must have initializerLeft,// error TS1061: Enum member must have initializerRight// error TS1061: Enum member must have initializer}
一、是什么
枚举是一个被命名的整型常数的集合,用于声明一组命名的常数,当一个变量有几种可能的取值时,可以将它定义为枚举类型
通俗来说,枚举就是一个对象的所有可能取值的集合
在日常生活中也很常见,例如表示星期的SUNDAY、MONDAY、TUESDAY、WEDNESDAY、THURSDAY、FRIDAY、SATURDAY就可以看成是一个枚举
枚举的说明与结构和联合相似,其形式为:
二、使用
枚举的使用是通过
enum
关键字进行定义,形式如下:声明关键字为枚举类型的方式如下:
类型可以分成:
数字枚举
字符串枚举
异构枚举
数字枚举
当我们声明一个枚举类型是,虽然没有给它们赋值,但是它们的值其实是默认的数字类型,而且默认从0开始依次累加:
如果我们将第一个值进行赋值后,后面的值也会根据前一个值进行累加1:
字符串枚举
如果设定了一个变量为字符串之后,后续的字段也需要赋值字符串,否则报错:
异构枚举
即将数字枚举和字符串枚举结合起来混合起来使用,如下:
通常情况下我们很少会使用异构枚举
本质
现在一个枚举的案例如下:
通过编译后,
javascript
如下:上述代码可以看到,
Direction[Direction["Up"] = 0] = "Up"
可以分成所以定义枚举类型后,可以通过正反映射拿到对应的值,如下:
并且多处定义的枚举是可以进行合并操作,如下:
编译后,
js
代码如下:可以看到,
Direction
对象属性回叠加三、应用场景
就拿回生活的例子,后端返回的字段使用 0 - 6 标记对应的日期,这时候就可以使用枚举可提高代码可读性,如下:
包括后端日常返回0、1 等等状态的时候,我们都可以通过枚举去定义,这样可以提高代码的可读性,便于后续的维护
参考文献
The text was updated successfully, but these errors were encountered: