【とらんすぱいら】
トランスパイラ とは?
最終更新:
💡 ソースコードからソースコードへ変換する
ソースコードを、別の言語や言語バージョンのソースコードへ変換するツール。TypeScriptやJavaScriptの変換を例に、型チェック・ポリフィル・ソースマップとの違いを解説します。
📌 このページのポイント
- コンパイラの一種として、ソースコードを出力する
- TypeScriptからJavaScript、新しい構文から対応する構文への変換など
- 構文の変換と、型チェック・実行時APIの補完は別の役割
- 対応する構文・出力先・デバッグの設定を確認する
トランスパイラは、コンパイラと別物?
どんな変換がある?
TypeScriptからJavaScriptへの変換や、新しいJavaScriptの構文を対象環境向けに書き換える例がある。BabelはJavaScriptコンパイラとして案内されているよ。入力と出力が同じ言語の別バージョンでも、ソース同士の変換になる。
TypeScriptを変換できれば、型も確認済み?
別の役割だよ。tscは型チェックと出力を扱えるけれど、esbuildはTypeScriptの構文を変換しても型チェックはしない。変換ツールを使う場合は、別途型チェックがあるかを確かめよう。型注釈は出力から取り除かれるため、実行時の入力検査にもならない。
古い環境向けに変換すれば、何でも動く?
変換後のコードから、元の場所を調べられる?
もっと詳しく知りたい人へ
バンドラと同じもの?
役割が違います。バンドラは、複数のモジュールや依存関係をまとめる処理を扱います。トランスパイルは構文などの変換です。esbuildのように、一つのツールが両方を扱う場合もあるため、実際の設定と処理を見ます。
変換後のファイルがあれば、型エラーはない?
そうとは限りません。型チェックをしないツールもあり、tscも設定によっては型エラーがあっても出力します。出力の有無だけで判断せず、チェック結果とnoEmitOnErrorなどの設定を確認します。
📖 おまけ:英語の意味
「Transpiler / Source-to-Source Compiler」 = ソースコードからソースコードへ変換するコンパイラ
💬 コンパイラの出力は、必ず機械語とは限りません。トランスパイラは、ソースコード同士の変換を説明する呼び方です。