まあ、ハマってたと言ってもちょっとだけなんですが、
https://github.com/Microsoft/TypeScript/blob/master/doc/spec.md#94-constant-enum-declarations9.4 Constant Enum Declarations - TypeScript Spec
に書かれているconst enum
の仕様を把握していなくて、
TypeScript で export した enum が undefined になってコードが動かん。なんでや?
ってなってました。 で、詳しい話は、上記リンク先のサンプルコード読めば判るんですが、今日ハマっていた内容としては、
export const enum Foo { Bar = 1 };
とかしていると、これが Foo.Bar
と言う定数の宣言みたいになって、TypeScript から JavaScript へ emit する時に、
その定数みたくなっている Foo.Bar
がインライン展開され JavaScript からは Foo.Bar
が見えなくなる、という TypeScript の仕様にハマった、という話です。
ま、言語仕様とかはキチンと把握しとけって話ですね。はい。