TypeScriptのEnumはObject.entries()
でループが可能だったのでメモ。
EnumはJSでどのように表示されるか
export enum Hoge {
FOO,
BAR,
PIYO
}
というEnumを記述すると、以下のようなJSにトランスパイルされる。
export var Hoge;
(function (Hoge) {
Hoge[Hoge["FOO"] = 0] = "FOO";
Hoge[Hoge["BAR"] = 1] = "BAR";
Hoge[Hoge["PIYO"] = 2] = "PIYO";
})(Hoge || (Hoge = {}));
早い話がJS内ではオブジェクトに変換されているということなので、Object.entries()を使えば要素ごとのループが可能ということがわかる。ということで、
Object.entries(Hoge).forEach(([key, value]) => {
console.log(key, value)
})
/*
0 FOO
1 BAR
2 PIYO
と出力
*/
と書けばOK。