I use Javascript classes to simulate enums (don't suggest me to use Typescript please). When I enter console.log(...MyEnumClass), I get Uncaught TypeError: MyEnumClass is not iterable.
I implement a generator but it doesn't work as expected:
class MyEnumClass {
static A = new MyEnumClass("A");
static B = new MyEnumClass("A");
static #values = Object.freeze([MyEnumClass.A, MyEnumClass.B]);
static values() {
return MyEnumClass.#values;
}
static *[Symbol.iterator]() {
yield* MyEnumClass.#values;
}
#name;
constructor(name) {
this.#name = name;
Object.freeze(this);
}
name() {
return this.#name;
}
}
Removing the static keyword before the generator declaration doesn't help. For now, I iterate over the array returned by values() but I'd like to find a better solution.