I\'m rebuilding an old Java project in Javascript, and realized that there\'s no good way to do enums in JS.
The best I can come up with is:
const C
If you don't need pure ES6 and can use Typescript, it has a nice enum:
https://www.typescriptlang.org/docs/handbook/enums.html
Maybe this solution ? :)
function createEnum (array) {
return Object.freeze(array
.reduce((obj, item) => {
if (typeof item === 'string') {
obj[item.toUpperCase()] = Symbol(item)
}
return obj
}, {}))
}
Example:
createEnum(['red', 'green', 'blue']);
> {RED: Symbol(red), GREEN: Symbol(green), BLUE: Symbol(blue)}
This is my personal approach.
class ColorType {
static get RED () {
return "red";
}
static get GREEN () {
return "green";
}
static get BLUE () {
return "blue";
}
}
// Use case.
const color = Color.create(ColorType.RED);