typescript enum <--> config 用法总结

318 阅读1分钟

1. 引言

枚举用不用,怎么用,一直是我们项目开发中会遇到的问题。

2. 问题
比如一个概念叫“速度”,那么它会有哪些我们可能定义的枚举呢?

1. SPEED
2. speed
3. 1

3. 举例
简单的列举了下,我们可能会用到四种映射方式,去定义这个“速度”,如下:

enum SpeedTitleToType {
  SPEED: 'speed'
}

exnum SpeedTypeToTitle {
  speed: 'SPEED'
}

exnum SpeedTitleToVal {
  SPEED: 1
}

exnum SpeedTypeToVal {
  speed: 1
}

4. 合理定义
怎么去在代码里体现合理的区分呢?这里从常用的业务角度出发,无非是2种目的用法,一是逻辑判断,二是配置使用。

我采用的方式是:枚举类型聚合,对象配置集合

// logic enum
enum SuperTitle {
  SPEED: 'SPEED',
  WEIGHT: 'WEIGHT',
}

export enum SuperType {
  SPEED: 'speed',
  WEIGHT: 'weight',
}

exnum SuperVal {
  SPEED: 1,
  WEIGHT: 2,
}

type SuperItem = {
  title: SuperTitletype: SuperTypeval: SuperVal;
}

// configs
export const SuperList: SuperItem[] = [
  {
    title: SuperTitle.SPEED,
    type: SuperType.SPEED,
    val: SuperVal. SPEED
  },
  {
    title: SuperTitle.WEIGHT,
    type: SuperType.WEIGHT,
    val: SuperVal. WEIGHT
  },
  // more items..
]

5. 结束语

  • 如果觉得写的不错,有用的话,还请帮我点个赞 O(∩_∩)O
  • 转发请注明出处,谢谢!