前編は、TypeScriptを学んだ(1) ~型、クラス編~
内部モジュール
コードを部品化してわかりやすく整理したりだとか、変数名とかクラス名の衝突を避けたりするために使用する。
module UserModule { // モジュール定義
export var name = "John"; // モジュールの外部からアクセスするにはexportを使う
export module AddressModule {
export var zip = "111-111";
}
}
// dotアクセス
console.log(UserModule.AddressModule.zip);
// もしくはimportを使い、、
import addr = UserModule.AddressModule
console.log(addr.zip);
また、複数のファイルに別れており、別ファイルを読み込む必要がある場合には、ファイルの最初に
main.ts
/// <reference path = "./user.ts" />
...
これらをコンパイルして一つのファイル(all.js)に書き出したい場合には、コンソールで$ tsx main.ts --out all.js
を実行すれば良い。
外部モジュール
user.ts
module UserModule {
export var name = "John";
}
main.ts
import User = require("./user") // 拡張子はいらない
console.log(User.name); // モジュールにはimport時の変数からアクセス
// Node JS でよく使われる CommonJS形式でのコンパイル方式
$ tsx main.js -m commonjs
// RequireJSなどで使われる AMD と呼ばれるコンパイル方式
$ tsx main.js -m amd