グローバルモジュールと内部モジュール〈名前空間〉は述べた。
CJSモジュールも僕は使いたくはないが、実際はまだ使われている。なにしろ NPM がCJSベースだから。が、ESModulesが使えない場合のみCJS使用だろうな。CJSに将来はない。
- 生の moduleオブジェクト、exportsオブジェクト、require関数を使うよりはマシ。
- TypeScript構文
import 名前 = require(パス);
でモジュールロードする。 - 名前をimport側で勝手につけるのはいかがなものか。
- パスの仕様はよくわからない。特に拡張子がわからん。要調査。
- コンパイルオプションは --module commonjs
- TypeScriptの外部モジュールは、ESModulesのモジュール・ファイルと概念的にほぼ一致するが、非モジュールファイルもグローバルモジュールと呼ぶ。
- グローバルモジュールとは、非モジュール・スクリプトファイルに include ディレクティブ機能を持たせたものだから、JavaScript的にはモジュールではない。TSCがバンドラー機能〈プリプロセッサ機能〉を持っているだけ。
- Export Assignments とか動的なモジュールロードとかは使わないが吉。
- export/import は、依存関係・可視性をハッキリさせることが目的だから、分かりにくくなるようなトリッキーなことはしないほうがよい。