私はJavascriptとTypescriptでAngular2クイックスタートチュートリアルを行っていましたが、javascriptバージョンでは、コンポーネントとモジュールが最初に変数に割り当てられていることがわかりました(window.app jsを介してアクセスできるグローバル変数ファイルやスクリプトブロック)、それは問題ありません。スクリプトのバージョンを入力するだけで、エクスポートとインポートが使用されました。生成されたJavaScriptコードを分析しようとしましたが、何も理解しませんでした。この輸出入がTyepescriptでどのように機能するかを説明できる人がいますか? typescriptですでエクスポートとインポートはタイスクリプトでどのように機能しますか?
答えて
インポートおよびエクスポートは、ここhttps://www.typescriptlang.org/docs/handbook/modules.htmlドキュメントでも説明されています。
toskvさんのコメントでは、TypeScriptファイル内の文がJavaScriptファイル内の文にどのように変換されるかは、おおよそtsconfig.json
ファイルで設定したモジュールシステムによって決まります。
たとえば、"module": "commonjs"
を設定すると、タイプ/スクリプト(tsc
)がimport/exportステートメントを本質的にnode.jsスタイルのrequire()
ステートメントに変換します。このドキュメントは、node.jsモジュールがどのように動作するかの簡単で便利な例をいくつか示しています:https://nodejs.org/api/modules.html。活字体がSystemJSはそのうち私は専門家でない、理解できるフォーマットにあなたのインポート/エクスポート文を翻訳作る代わりに「commonjs」の「systemjs」の設定を使用
。
は、このプロセスは、角度2つのプロジェクトはまたtranspiled JavaScriptファイルを取得し、パッケージに変えるステップ築く必要とするという事実によってさらに複雑である「バンドル」をこれらのバンドルされたファイルは、(構成設定に応じて)連結され、縮小され、おそらくuglifiedさえあります。だから実行されている最終的なjavascriptコードを見ても、人間によって書かれたものではないので、実際には役に立ちません。
たとえば、Webpackビルドシステム(google webpack.js)は、JavaScriptコードで見つかるrequire()
ステートメントを受け取り、独自の__webpack_require__
関数で各モジュールをラップする魔法をいくつか実行します。これにより、ビルドシステムはプロジェクトファイル全体互いに依存関係を維持している1つまたは複数のJavaScriptファイルにバンドルします。言い換えれば
は、あなたが生産するJavaScriptコードを見る時間によって、人間の読者が理解しやすいことを意味するものではないです。この流れは、単にTS Source Code
>TS Transpilation into JS Code
>Module/Dependency Build Steps into Production JS Code
で表すことができる。
TL; DR活字体は、実際に、モジュールのインポート/エクスポートを処理しません。 transpilation時、それが今度は角度2アプリケーションにサービスを提供するための製品コードに変換される他モジュールシステム(Node.jsの又はSystemJS)が理解できる文にこれらのステートメントを変換します。
- 1. インポートはどのように正確に機能しますか?
- 2. インポートはどのように迅速に機能しますか?
- 3. インポートはどのように迅速に機能しますか?
- 4. Javaインポートのワイルドカードはどのように機能しますか?
- 5. 錆のインポート/モジュールシステムはどのように機能しますか?
- 6. Pythonのインポートはどのように機能しますか?
- 7. 相対インポートはどのように機能しますか?
- 8. MEFの実行時にインポートとエクスポートはどのように機能しますか?
- 9. bobril-importedでのbobril翻訳のインポート/エクスポートはどのように機能しますか?
- 10. ava watch機能とtranspilingタイスクリプト
- 11. logstash kv {}機能はどのように機能しますか?
- 12. WatchKit:ディクテーション機能はどのように機能しますか?
- 13. 機能はどのように機能しますか?
- 14. Angular2タイスクリプトのドラッグアンドドロップ機能
- 15. Raven DB:「スマグラー」と「インポート/エクスポート」とはどう違うのですか?
- 16. Aureliaの機能とルーティングはどのように機能しますか?
- 17. Xamarin iOSとAndroidはどのように機能しますか?
- 18. printfとscanfはどのように機能しますか?
- 19. デリゲートとコールバックはどのように機能しますか?
- 20. TableLayoutはTableRowとどのように機能しますか?
- 21. Bitblt()はSRCANDとどのように機能しますか?
- 22. インテリセンスとオートコンプリートはどのように機能しますか?
- 23. PacketFenceはCentOSファイアウォールとどのように機能しますか?
- 24. クラスノードとクラスキュー、 "ポインタ"はどのように機能しますか?
- 25. 「クイックショートカットメーカー」と「アプリショートカットメーカー」はどのように機能しますか?
- 26. コンストラクターシグネチャーとタイプスクリプトインターフェースはどのように機能しますか?
- 27. AppMakrとモバイルRoadieはどのように機能しますか?
- 28. reference_wrapperとstd :: refはどのように機能しますか?
- 29. foldlとfoldrはどのように機能しますか?
- 30. pthread_key_tとpthread_key_createメソッドはどのように機能しますか?
すべては、使用しているモジュールシステムによって異なります。 ES2015でJavaScriptモジュールとその状態を読むことをお勧めします。 :) – toskv