Enumify
A JavaScript library for enums. To be used by transpiled ES6 (e.g. via Babel).
The approach taken by Enumify is heavily inspired by Java enums.
The basics
Install:
npm install enumify
Use:
; {}Color; console; // Color.REDconsole; // true ; // Error: Enum classes can’t be instantiated
Properties of enum classes
Enums get a static property enumValues
, which contains an Array with all enum values:
for const c of ColorenumValues console;// Output:// Color.RED// Color.GREEN// Color.BLUE
The inherited tool method enumValueOf()
maps names to values:
console; // truetrue
Properties of enum values
Enumify adds two properties to every enum value:
-
name
: the name of the enum value.> Color.BLUE.name'BLUE' -
ordinal
: the position of the enum value within the ArrayenumValues
.> Color.BLUE.ordinal2
Adding properties to enum values
initEnum()
also accepts an object as its parameter. That enables you to add properties to enum values:
{} // Alas, data properties don’t work, because the enum// values (TicTacToeColor.X etc.) don’t exist when// the object literals are evaluated.TicTacToeColor; console; // TicTacToeColor.X
More information
- The directory
test/
contains examples.