マルチファイル名前空間を使用してコードを編成する
名前空間は、複数の TypeScript ファイル間で共有することで拡張できます。 相互に関連する複数のファイルに名前空間がある場合は、ファイル間の関係を TypeScript コンパイラに通知するために reference
タグを追加する必要があります。 たとえば、次の 3 つの Typescript ファイルがあるとします。
- interfaces.ts。いくつかのインターフェイス定義が含まれる名前空間を宣言します。
- functions.ts。interfaces.ts 内のインターフェイスを実装する関数が含まれる名前空間を宣言します。
- main.ts。functions.ts 内の関数を呼び出し、アプリケーションのメイン コードを表します。
interfaces.ts と functions.ts のリレーションシップを TypeScript に通知するには、functions.ts の先頭にトリプル スラッシュ (///
) 構文を使用して reference
を interfaces.ts に追加します。 次に、interfaces.ts と functions.ts の両方とのリレーションシップがある main.ts で、両方のファイルに reference
を追加します。
複数のファイルへの参照がある場合は、最上位レベルの名前空間から開始して、下位レベルの指定に進みます。 TypeScript でファイルをコンパイルするときに、この順序が使用されます。
マルチファイル名前空間のコンパイル
マルチファイル名前空間をコンパイルする方法は 2 つあります。ファイルごとのコンパイルと単一ファイルのコンパイルです。
既定では、main.ts に対して TypeScript コンパイラを実行すると、ファイル内の reference
ステートメントが確認され、入力ファイルごとに 1 つの JavaScript ファイルが生成されます。 このオプションを選択した場合は、Web ページで <script>
タグを使用して、出力された各ファイルを適切な順序で読み込みます。
--outFile
オプションを使用して、単一の JavaScript 出力ファイルを生成するようにコンパイラに指示することもできます。 上記の例の場合は、tsc --outFile main.js main.ts
コマンドによって、main.js という単一の JavaScript ファイルを生成するようにコンパイラに指示します。