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: SuperTitle;
type: SuperType;
val: 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
- 转发请注明出处,谢谢!