トランスパイルとは何か:TypeScriptやJSXがブラウザで動くまで

入門 | 8分 で読める | 2026.07.09

公式ドキュメント

まず結論

トランスパイルとは、ある種類のソースコードを、別の近い種類のソースコードへ変換することです。

Web開発では、TypeScriptをJavaScriptへ変換したり、JSXをJavaScriptへ変換したりする場面でよく出てきます。

const count: number = 1;

TypeScriptはブラウザがそのまま実行する言語ではありません。実行前にJavaScriptへ変換されます。

const count = 1;

このような変換を、広い意味でトランスパイルと呼びます。

コンパイルとの違い

コンパイルは、ソースコードを別の形式へ変換する大きな概念です。C言語を機械語へ変換するようなものもコンパイルです。

トランスパイルは、その中でも「比較的近い言語同士の変換」を指す言葉として使われます。

用語イメージ
コンパイルC -> 機械語実行形式へ変換
トランスパイルTypeScript -> JavaScript近い言語へ変換
ビルド変換、結合、最適化全体公開用にまとめる

ただし実務では、厳密に分けず「TypeScriptをコンパイルする」と言うこともあります。言葉よりも、何が何に変換されているかを理解することが大切です。

TypeScriptで何が消えるか

TypeScriptの型は、開発中にミスを見つけるための情報です。ブラウザで実行されるJavaScriptには基本的に残りません。

function greet(name: string): string {
  return `Hello, ${name}`;
}

変換後は、型注釈が消えます。

function greet(name) {
  return `Hello, ${name}`;
}

つまり、TypeScriptは本番のブラウザ上で型チェックしているわけではありません。型チェックは、ビルド前や開発中に行います。

JSXで何が起きるか

Reactなどで使うJSXも、ブラウザがそのまま理解する構文ではありません。

const element = <button>保存</button>;

ビルド時にJavaScriptの関数呼び出しへ変換されます。実際の形は設定やランタイムによって変わりますが、考え方としては「見た目がHTMLに近い構文をJavaScriptへ変換している」と理解すれば十分です。

新しいJavaScriptを古い環境向けに変換する

トランスパイルは、TypeScriptだけではありません。新しいJavaScript構文を、古いブラウザでも動きやすい形へ変換することがあります。

例:

  • optional chaining
  • nullish coalescing
  • class fields
  • async/await

どこまで古い環境へ対応するかは、プロジェクトの設定や対象ブラウザによります。

変換しても守れないこと

トランスパイルは万能ではありません。

  • 実行時のAPIが存在しない問題
  • サーバとブラウザの違い
  • データ形式の不一致
  • セキュリティ上の設計ミス

たとえば、構文は変換できても、古いブラウザに fetch が存在しなければ別の対策が必要になります。

注意: トランスパイルは「構文を変える」ことが中心です。実行環境にAPIがあるかどうかは別問題です。

まとめ

トランスパイルは、TypeScriptやJSX、新しいJavaScript構文を、実行できるJavaScriptへ変換する工程です。

ビルドの中には、トランスパイル、バンドル、最小化など複数の処理が含まれます。エラーを読む時は、「型チェックで落ちたのか」「変換で落ちたのか」「実行時に落ちたのか」を分けて考えると原因を追いやすくなります。

次に読む記事

← 一覧に戻る
PR
PR
PR
PR