Skip to content

begininend/es6-enum.js

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 

Repository files navigation

es6-enum.js

JavaScript enum library inspired by java enums using es6

The basic usage

class Color extends Enum {
    static RED = new Color();
    static GREEN = new Color();
    static BLUE = new Color();
}
Color.freeze();

console.log(Color.values()); // Color.RED, Color.GREEN, Color.BLUE
console.log(Color.GREEN instanceof Color); // true
console.log(Color.GREEN.name); // GREEN
console.log(Color.GREEN.ordinal); // 1
console.log(Color.valueOf('RED') === Color.RED); // true


new Color(); // Error: Enum classes can’t be instantiated after freeze.

The advanced usage

class SideEnum extends Enum {
    constructor(isRight) {
        super();
        this.right = isRight;
    }

    isRight() {
        return this.right;
    }

    isLeft() {
        return !this.right;
    }

    static valueBy(isRight) {
        return isRight ? SideEnum.RIGHT : SideEnum.LEFT;
    }

    static LEFT = new SideEnum(false);
    static RIGHT = new SideEnum(true);
}
SideEnum.freeze();

About

JavaScript enum library inspired by java enums

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors