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 は純粋にコンパイル時のエイリアスで、トランスパイル後に完全に消え、実行時には値そのものだけが存在します。