2016-04-22 4 views
1

コードは単純である:Angular 2の "const"値を変更してもエラーが発生しないのはなぜですか?

Uncaught TypeError: Assignment to constant variable.

しかし、角度2における同一の符号は、任意のエラーを与えない:

const num = 1; 
num = 2; 
console.log('num', num); 

JSFiddleにおいて、ブラウザコンソールが大きい以下のエラーを表示します最後にnumはとなります。このPlunkerを参照してください。

なぜ角2の "const"値を変更してもエラーになりませんか?これはバグですか?互換性のためにvarに置き換えられて生成されたコードconstにおけるので感謝

+0

バベルを使って蒸散していますか? – aray12

+0

@ aray12私はよく分かりません。私はオンラインで学びました。ES6はBabelまたはTraceurを使ってES5にコンパイルできますが、TypeScriptは独自のコンパイラを持っています。たぶんTypeScriptコンパイラのバグでしょうか? –

+0

JavaScriptから[JSFiddle](https://jsfiddle.net/Hongbo_Miao/f44ncoe4/)のTypeScriptに変更した場合、2となるので、TypeScriptコンパイラのバグ(?) –

答えて

1

オンライン活字体のコンパイラのデフォルトのターゲットは、「ES6」より低いが、あなたにあるconfig.jsにそれを変更した場合:

typescriptOptions: { 
    emitDecoratorMetadata: true, 
    target: 'es6' 
    } 

コンパイラの出力は以下となりますconstエラーが表示されます。

+0

ありがとうございますが、** config.js **に 'target: 'es6''という行を追加しようとしましたが、' Unexpected identifier'というエラーが出ました。 –

+0

[plunkr](http://plnkr.co/edit/AVjgXnR4CVjBhWd9gbVP?p=preview) – kemsky

+0

おかしな、私はちょうど 'target: 'es6''を追加し、[plunker](http://plnkr.co/edit/vl2Yicarpxw5XiKf0iff?p = preview)。他にもいくつか追加しましたか?ありがとう –

関連する問題