2016-09-26 6 views
1

私はtypescriptですでconst enumを持っている:のconst列挙型(typescript.js対tsc.js)

const enum LogLevel { 
    TRACE = 0, 
    DEBUG = 1, 
    INFO = 2, 
    WARN = 3, 
    ERROR = 4, 
    SILENT = 5 
} 

typescriptですに基づいて、次のフィールドスペック:

private foo: number = LogLevel.DEBUG;

があるべき

this.foo = 1 /* DEBUG */; 

コマンドliからtscを使用するとne(Windows)は期待通りに動作します。それは(TSCで使用されているtsc.jsとは対照的に、node_modulesからtypescript.jsを使用しています)WebPACKのプロジェクトにawesome-typescript-loaderしてコンパイルされている場合でも、その後、列挙型定数は、インライン化取得されていません。

this.foo = LogLevel.DEBUG; 

tscモジュールとノードモジュールのバージョンは同じです(2.0.2)。

私は2つの違いがあってはならないと思います。なぜ誰が知っていますか?

答えて

0

これは、tsconfig.jsonのdeclarationオプションが原因であることが判明しました。 falseに設定すると、2つのコンパイルによって上記の不一致の結果が生成されます。しかし、それがtrueに設定されている場合、期待どおりに動作します。なぜこのフラグが結果にそのような影響を与えるのか不明です。

0

tsconfig.jsonファイルを確認してください。 'preserveConstEnums'という名前の設定がある場合は、値を 'false'に設定します。

私はtypescript 2.0.3 NPM-packageでチェックしました。私はbundle.js内のスタティック番号しか見ることができません。