项目作者: kamil7x

项目描述 :
Simple JS library for enums
高级语言: JavaScript
项目地址: git://github.com/kamil7x/enums-js.git
创建时间: 2018-08-05T14:36:01Z
项目社区:https://github.com/kamil7x/enums-js

开源协议:

下载


JavaScript library for enums

Simple JS library for enums. https://www.npmjs.com/package/enums-js

Installation

  1. npm install enums-js

Usage:

Pass list of entries to constructor.
Entry can be simple string. In this case, this string is used as enum key, and value is set automatically, similar to TypeScript enums.

  1. const Color = new Enum('red', 'green', 'blue');
  2. console.log(Color.keys()); // ['RED', 'GREEN', 'BLUE']
  3. console.log(Color.RED.value); // 0
  4. console.log(Color.RED === Color.GREEN); // false
  5. console.log(Color.BLUE === Color.BLUE); // true
  6. console.log(Color.GREEN.value === 1); // true
  7. console.log(Color.RED.ordinal); // 0
  8. console.log(Color.BLUE.ordinal); // 2

You can also use a key-value pair as a value. Just define it as an array. If only key is passed to array, value is equal to key.

  1. const Color = new Enum(['red', 'color-red'], ['green', 'color-green'], ['blue']);
  2. console.log(Color.keys()); // ['RED', 'GREEN', 'BLUE']
  3. console.log(Color.RED.value); // color-red
  4. console.log(Color.BLUE.value); // blue
  5. console.log(Color.RED === Color.GREEN); // false
  6. console.log(Color.GREEN.value === 'green'); // false
  7. console.log(Color.GREEN.value === 'color-green'); // true

If you set value as a number, all subsequent values will be greater than that number, similar to TypeScript

  1. const ActiveStatus = new Enum('off', 'on', ['error_missing_data', 10], 'error_access_denied', 'error_not_found', ['undefined', 255]);
  2. console.log(ActiveStatus.OFF.value); // 0
  3. console.log(ActiveStatus.ON.value); // 1
  4. console.log(ActiveStatus.ERROR_MISSING_DATA.value); // 10
  5. console.log(ActiveStatus.ERROR_ACCESS_DENIED.value); // 11
  6. console.log(ActiveStatus.ERROR_NOT_FOUND.value); // 12
  7. console.log(ActiveStatus.UNDEFINED.value); // 255