カラクリサイクル

『輝かしい青春』なんて無かった人の雑記

TypeScript の const enum でちょろっとハマった

まあ、ハマってたと言ってもちょっとだけなんですが、

に書かれているconst enum の仕様を把握していなくて、

TypeScript で export した enum が undefined になってコードが動かん。なんでや?

ってなってました。

で、詳しい話は、上記リンク先のサンプルコード読めば判るんですが、今日ハマっていた内容としては、

export const enum Foo { Bar = 1 };

とかしていると、これが Foo.Bar と言う定数の宣言みたいになって、TypeScript から JavaScript へ emit する時に、 その定数みたくなっている Foo.Bar がインライン展開され JavaScript からは Foo.Bar が見えなくなる、という TypeScript の仕様にハマった、という話です。

ま、言語仕様とかはキチンと把握しとけって話ですね。はい。