cenum
TypeScript icon, indicating that this package has built-in type declarations

2.0.3 • Public • Published

cenum

安装

Using npm:

$ npm install cenum

or using yarn:

$ yarn add cenum

用法

import Enum from 'cenum';

const status = new Enum([
  {name: 'ACTIVE', value: 1, label: '激活'},
  {name: 'INACTIVE', value: 0, lable: '未激活'}
]);

status.get('ACTIVE').is(1); // true
status.get('ACTIVE').is('ACTIVE'); // true
status.get('ACTIVE').is('激活'); // true

status.has('INACTIVE'); // true
status.has(0); // true
status.has('未激活'); // true

status.get('ACTIVE').in(0, 1) // true
status.get('ACTIVE').in(['ACTIVE', '未激活']) // true

status.get('ACTIVE').label // 激活
status.get('ACTIVE').name // ACTIVE
status.get('ACTIVE').value // 0

除了通过 get 方法获取对应的枚举,还可以通过枚举名称直接获取,前提条件是枚举名称和内部变量不产生冲突,所以建议名称使用大写,因为内部变量都用的小写,保证不冲突

status.ACTIVE.label // 激活

或者使用parse批量转换

import { enums, parse } from 'cenum';

parse({
  role: [
    {name: 'ACTIVE', value: 1, label: '激活'},
    {name: 'INACTIVE', value: 0, lable: '未激活'}
  ],
  gender: [
    ['MALE', 1, '男'],
    ['FEMALE', 0, '女']
  ]
})

enums.role // 角色Enum
enums.gender // 性别Enum

构造方法的参数有四种格式

  1. 以对象方式完整定义name, value, label
    [{name, value, label}, ...]
  2. 以数组方式完整定义name, value, label
    [[name, value, label], ...]
  3. 只提供值, name和labe将和value保持一致
    [value, ...]
  4. 以键-值对的方式定义name和value
    {name: value, ...}

当缺失name或者label的时候,将自动用name表示label或者用label表示name
当name和label都没有的时候,将默认等于value

请确保每一条的name, value, label互相之间都是不一样的

/cenum/

    Package Sidebar

    Install

    npm i cenum

    Weekly Downloads

    1

    Version

    2.0.3

    License

    ISC

    Unpacked Size

    27 kB

    Total Files

    17

    Last publish

    Collaborators

    • leeqq