从需求出发,想维护一堆字典。在使用时,要么通过枚举直接拿到值,要么拿到对应 options,对于 value/Label 互查,都可以通过 options 得到。
基于以上两点需求:
- 定义枚举,代码中避免写出 status === 1 这种代码。
export enum Status {
WaitPay = 0,
Success = 1,
Cancel = 2,
} - 定义对应 options,增加了 label,便于遍历、渲染。另外这里也支持扩展。
export const StatusOptions = [
{label: ' 等待中 ', value: Status.WaitPay},
...
]
对于 label/value 互取,写两个通用方法即可。
这种写法,也比较符合字典的定义。另外对于消费的支持也是很灵活的,也便于多人维护。