2016-11-17 13 views
4

理解のとおり、ノードjsはCommonJSモジュールパターンを使用し、CommonJS パターンではノードモジュールをインポートするためにrequire()を使用します。Angular2でのモジュールのインポート

角度2アプリケーション開発では、@ angular/core、@ angular/commonなどのノードモジュールを使用します。 ノードモジュール。

私の質問は:

は、なぜ私たちはangular2にノードモジュール にアクセスするための[ES6モジュールの構文である]の代わりにcommonJSの が(必要)構文「『@角度/コア』からインポートを{}」を使用しますコードファイル。

答えて

4

この理由は、Angular2がTypeScriptで記述されているためです。

TypeScriptはES2015のスーパーセットであり、可能な限りES2015の推奨構文に近づきたいと考えています。そのため、ES2015のimport {}を構文から使用しています。

しかし、TypeScriptには内蔵のトランスピラー(tsc)も付属しています。あなたは活字体のコードを記述しますが、ES5をターゲットとtranspiledコードに見てみると、あなたは はっきりと(舞台裏活字体が必要とするからインポートを{}翻訳することがわかりますあなたtsconfig.json

  • に特定のECMAScriptバージョンをターゲットと意味)をファイルに保存します。
  • トランスコードされたコードでES6をターゲティングする場合、インポートはES2015のインポートになります。 ES6を対象とする場合、ES6モジュールをES5にトランスペアレント化するにはbabelが必要で、ブラウザにES6モジュールをロードするにはSystem.jsを使用する必要があります。

乾杯

関連する問題