トランスパイラ
ある言語のソースコードを別の言語や同じ言語の異なるバージョンに変換するツール
トランスパイラとは
トランスパイラ (Transpiler / Source-to-Source Compiler) は、TypeScript → JavaScript、JSX → JavaScript、ES2024 → ES5 のように、ソースコードを別の言語や同じ言語の古いバージョンに変換するツールである。コンパイラが高水準言語を機械語に変換するのに対し、トランスパイラは高水準言語を別の高水準言語に変換する。
主要なトランスパイラ
主要なトランスパイラを以下にまとめる。
| ツール | 言語 | 変換 | 速度 |
|---|---|---|---|
| tsc | TypeScript | TS → JS (型チェック付き) | 遅い |
| Babel | JavaScript | ES2024 → ES5、JSX → JS | 中程度 |
| SWC | Rust | TS/JSX → JS | 高速 (Babel の 20 倍) |
| esbuild | Go | TS/JSX → JS + バンドル | 極めて高速 |
TypeScript のトランスパイル
TypeScript のトランスパイルのコード例を示す。
// TypeScript (入力)
interface User { name: string; age: number; }
const greet = (user: User): string => `Hello, ${user.name}`;
// JavaScript (出力): 型情報が除去される
const greet = (user) => `Hello, ${user.name}`;
TypeScript の型情報はトランスパイル時に完全に除去される。実行時には存在しない。tsc は型チェックとトランスパイルの両方を行うが、SWC や esbuild は型チェックをスキップしてトランスパイルだけを高速に行う。
tsc vs SWC vs esbuild
tsc と SWC vs esbuild の違いを図で示す。
tsc: 型チェック + トランスパイル (遅い、正確)
SWC: トランスパイルのみ (高速、型チェックなし)
esbuild: トランスパイル + バンドル (極めて高速、型チェックなし)
推奨構成:
CI: tsc --noEmit (型チェックのみ) + esbuild (トランスパイル + バンドル)
開発: Vite (内部で esbuild を使用) + エディタの TypeScript LSP (型チェック)
Babel のポリフィル
Babel は構文の変換だけでなく、古いブラウザに存在しない API (Promise, Array.from) のポリフィルも提供する。@babel/preset-env でターゲットブラウザを指定し、必要なポリフィルだけを含める。
{
"presets": [["@babel/preset-env", { "targets": "> 0.5%, not dead" }]]
}
JSX のトランスパイル
JSX のトランスパイルのコード例を示す。
// JSX (入力)
const element = <Button onClick={handleClick}>Click me</Button>;
// JavaScript (出力): React.createElement に変換
const element = React.createElement(Button, { onClick: handleClick }, "Click me");
// React 17+ の新しい JSX Transform
import { jsx as _jsx } from "react/jsx-runtime";
const element = _jsx(Button, { onClick: handleClick, children: "Click me" });
Lambda でのトランスパイル
SAM の esbuild ビルドメソッドを使えば、TypeScript を直接デプロイできる。
実践的な知識は関連書籍でも得られる。
この記事は役に立ちましたか?
関連用語
関連する記事
技術書ランキングの決定版はどれか - IT エンジニア本大賞の歴代大賞と言及数データで読む
技術書ランキングを探している人向けに、検証可能な 2 つのデータ (IT エンジニア本大賞の歴代大賞 2014-2026 年と、当サイトの Qiita / Zenn 言及数ランキング) を整理。歴代受賞作の一覧表と、ランキングを選書に活かす方法を解説します。
技術書の「積ん読」を資産に変える - 未読本を活かすリファレンス読書術
積ん読を「解消すべき問題」ではなく「活用すべき資産」として捉え直す発想の転換と、未読の技術書をリファレンスライブラリとして運用する具体的な方法を紹介します。
Git / GitHub 本ガイド - マンガ / GUI / 仕組み理解の 3 つの入口で選ぶ
Git と GitHub を学ぶ本の選び方を「入口の違い」で整理。マンガで概念を掴む本、GUI から入る本、仕組みを腹落ちさせる本、チーム開発の作法を学ぶ本、手元に置くリファレンスまで、2026 年 8 月時点の定番書で独学ルートを解説します。