type 型エイリアス

最終更新:2026-10-22

type 型エイリアス

type は任意の型に名前を付けます。オブジェクト、ユニオン、タプル、関数、リテラルのすべてに名前を付けられます。最も適用範囲の広い型の命名方式で、interface と並びます。

グループ型の組み合わせ
種類構文
strict モード不要

ℹ️ 説明 エディタは TypeScript を JavaScript にトランスパイルして実行します(型チェックなし)。型チェック結果は各サンプルの出力を参照してください。

📝 構文

type ID = string | number;
type Point = { x: number; y: number };
const origin: Point = { x: 0, y: 0 };

⚙️ パラメータ

type X = T等号の右側には、ユニオン、交差、タプル、条件型を含む任意の型式を書けます

戻り値:戻り値はありません。type は純粋な型レベルの概念であり、コンパイル後に消えます。

▶ サンプル

下のコードを編集して「試す」を押すと、トランスパイル実行結果を確認できます:

出力:

#42 #A1 0 0

(トランスパイル後の実行出力。origin に余分な z: 1 を書くと、余分なプロパティチェックが発火します)

💡 ポイント

ℹ️ 説明 type は interface では表現できないユニオン、タプル、マップ型、条件型を表現できます。interface 独自の宣言マージは type にはありません。
💡 ヒント 複雑な構造に名前を付けるとエラーメッセージが短くなります。エラーには長大な構造ではなくエイリアスが表示されます。
⚠️ 注意 同名の type は重複宣言できません(重複定義のエラーになります)。interface のようなマージは起きません。「漸進的な拡張」が必要なときは交差型で重ねます。
ケースは今後追加予定です。

📚 関連チュートリアル

❓ よくある質問

Q type と interface は結局どちらを使うべきですか?
A チームで統一すれば十分です。経験則として、純粋なオブジェクトの形状でライブラリにマージ/拡張される可能性があるなら interface、ユニオンやユーティリティ型の組み合わせが関わるなら必ず type を使います。
Q type は自分自身を再帰的に参照できますか?
A できます。type JSON = string | number | boolean | null | JSON[] | { [k: string]: JSON } のようにです。interface も同様に再帰をサポートします。
Q type で付けた名前は実行時に影響しますか?
A いいえ。type は純粋にコンパイル時のエイリアスで、トランスパイル後に完全に消え、実行時には値そのものだけが存在します。
Web-Tutorial.com

Web-Tutorial 技術チーム

複数の開発者によって共同維持されているプログラミングチュートリアルプラットフォーム。各チュートリアルは専門分野の開発者が執筆・レビューしています。正確で信頼性の高いコンテンツを目指しています — 問題を見つけた場合はお知らせください。

100%