什么是枚举

枚举就是一系列值得集合,和常量是对等的。当一个变量有几种可能的取值时,可以将它定义为枚举类型。通俗来说,枚举就是一个对象的所有可能取值的集合

在日常生活中也很常见,例如表示星期的SUNDAY、MONDAY、TUESDAY、WEDNESDAY、THURSDAY、FRIDAY、SATURDAY就可以看成是一个枚举

ts枚举简单用法

数字枚举

enum Direction {
  Up = 1,
  Down,
  Left,
  Right,
}
// Direction.Up 1 Direction.Down 2 Direction.Left 3 Direction.Right 4

字符串枚举

enum Direction {
  Up = "UP",
  Down = "DOWN",
  Left = "LEFT",
  Right = "RIGHT",
}
// Direction.Up Up Direction.Down Down Direction.Left Left Direction.Right Right

异构枚举

从技术上讲,你可以这么做。

除非你真的试图以一种聪明的方式利用JavaScript的运行时行为,否则建议你不要这样做。

enum BooleanLikeHeterogeneousEnum {
  No = 0,
  Yes = "YES",
}

更多用法

TypeScript: Handbook - Enums (typescriptlang.org)

一文让你彻底掌握 TS 枚举 - 掘金 (juejin.cn)

简单应用场景

根据不同的行为触发不同的动作

假如一个对象有2种行为:以及,那么可以把这一系列的行为抽离成枚举,并在后续逻辑做相应判断

enum ActionEnums {
  EAT = 0,
  RUN = 1,
}

// ···

switch (action) {
    case ActionEnums.EAT:
        // do something ···
        break;

    case ActionEnums.RUN:
      // do something ···
        break;
        
    default:
}

创建不同类型的商品

enum GoodsTypeEnums {
    JUICE = 1,
    SODA = 2,
}

axios.post('create', {
    data: {
        name: '橙汁',
        type: GoodsTypeEnums.JUICE
    }
})
// or
axios.post('create', {
    data: {
        name: '可乐',
        type: GoodsTypeEnums.SODA
    }
})
Last modification:June 8, 2022
If you think my article is useful to you, please feel free to appreciate