TypeScriptのコンパイルについて
コンパイルについて
TypeScriptはJavaScriptのスーパーセット言語であり、静的型付けやクラスベースのオブジェクト指向、インターフェース、ジェネリックスなどの機能を提供しています。TypeScriptコードはJavaScriptコードにコンパイルされ、ブラウザー、Node.js、または他のランタイムで実行されます。
TypeScriptのコンパイラーは、TypeScriptコードをJavaScriptコードに変換します。コンパイラーは、コンパイル対象のTypeScriptファイルを指定することで実行されます。次に、コンパイラーはTypeScriptコードを解析し、JavaScriptコードに変換します。変換されたJavaScriptコードは、指定されたファイルに書き込まれます。
TypeScriptのコンパイラーには、コマンドラインツールと、プログラムから呼び出すことができるAPIがあります。コマンドラインツールを使用すると、TypeScriptファイルを手動でコンパイルすることができます。APIを使用すると、プログラムからTypeScriptファイルをコンパイルすることができます。
コンパイル手順とオプションについて
コンパイル
まず、TypeScriptのコードを作成します。例えば、以下のようなTypeScriptのコードを作成します。
下記のソースコードをmain.ts
ファイルを新規作成し保存します。
function add(a: number, b: number) {
return a + b;
}
let result = add(1, 2);
console.log(result);
TypeScriptのコードをコンパイルするには、以下のコマンドを使用します。
$tsc main.ts
このコマンドを実行すると、同じ名前のJavaScriptファイル(.js拡張子)が生成されます。
今回は、main.jsファイルが生成されます。
function add(a, b) {
return a + b;
}
var result = add(1, 2);
console.log(result);
オプションを指定する
TypeScriptのコンパイラには、オプションを指定することができます。例えば、出力するJavaScriptファイルのバージョンを指定することができます。以下のコマンドを使用して、オプションを指定してコンパイルします。
--target
コンパイルされたJavaScriptのターゲットバージョンを指定します。デフォルトでは、最新のECMAScriptバージョンが使用されます。例えば、--target es5
を指定することで、ES5互換のコードが生成されます。
--module
生成されるJavaScriptのモジュールシステムを指定します。デフォルトでは、CommonJSが使用されます。他に、AMDやES6などを指定することができます。
--outFile
複数のTypeScriptファイルを1つのJavaScriptファイルに結合する場合に使用します。出力ファイルのパスを指定します。
--sourceMap
コンパイルされたJavaScriptにソースマップを生成します。これにより、ブラウザのデバッグツールでTypeScriptのソースコードをデバッグすることができます。
--watch
TypeScriptファイルの変更を監視し、変更があった場合に自動的に再コンパイルします。
--noEmitOnError
コンパイルエラーがある場合、JavaScriptファイルを生成しないようにします。
--strict
TypeScriptの厳密な型チェックを有効にします。これにより、潜在的なバグを見つけることができます。
--noImplicitAny
暗黙的なany型を禁止します。これにより、型指定がされていない変数や関数のエラーを検出することができます。
これらは一部の例ですが、TypeScriptのコンパイラにはさまざまなオプションがあります。オプションの詳細については、公式ドキュメントを参照してください。
tsconfig.jsonファイルの設定について
TypeScriptでは、コンパイラの設定をtsconfig.json
ファイルに記述することができます。このファイルを使用することで、コマンドラインでオプションを指定する必要がなくなり、複数のファイルに対して共通の設定を行うことができます。
以下は、tsconfig.json
ファイルの例です。
{
"compilerOptions": {
"target": "es5",
"module": "commonjs",
"outDir": "dist",
"sourceMap": true,
"strict": true,
"noImplicitAny": true
},
"include": [
"src/**/*"
],
"exclude": [
"node_modules",
"**/*.spec.ts"
]
}
tsconfig.json
ファイルは、次の3つのセクションで構成されています。
compilerOptions
TypeScriptコンパイラのオプションを指定するセクションです。ここで指定したオプションは、コンパイル時に自動的に適用されます。
include
TypeScriptファイルの検索パターンを指定するセクションです。ここで指定したパターンにマッチするファイルが、コンパイルの対象となります。
exclude
コンパイルから除外するファイルやディレクトリを指定するセクションです。ここで指定したパターンにマッチするファイルは、コンパイルの対象外となります。
上記の例では、compilerOptions
セクションでコンパイラのオプションを指定しています。include
セクションで、src
ディレクトリ以下にあるすべてのTypeScriptファイルをコンパイルの対象としています。また、exclude
セクションで、node_modules
ディレクトリや*.spec.ts
ファイルをコンパイルから除外しています。tsconfig.json
ファイルの詳細については、公式ドキュメントを参照してください。