从需求出发,想维护一堆字典。在使用时,要么通过枚举直接拿到值,要么拿到对应 options,对于 value/Label 互查,都可以通过 options 得到。
基于以上两点需求:

  1. 定义枚举,代码中避免写出 status === 1 这种代码。
    export enum Status {
    WaitPay = 0,
    Success = 1,
    Cancel = 2,
    }
  2. 定义对应 options,增加了 label,便于遍历、渲染。另外这里也支持扩展。
    export const StatusOptions = [
    {label: ' 等待中 ', value: Status.WaitPay},
    ...
    ]

对于 label/value 互取,写两个通用方法即可。

这种写法,也比较符合字典的定义。另外对于消费的支持也是很灵活的,也便于多人维护。