インターフェース vs 型エイリアス:使い分けと実用例

TypeScriptでは型を定義する方法として「interface(インターフェース)」と「type alias(型エイリアス)」の2つがあります。どちらも似たように使えるため、初心者は「何を基準に使い分ければいいの?」と迷いがちです。この記事では、それぞれの違いと実用的な使い分け方法、そして具体的なコード例を交えてわかりやすく解説します。

インターフェースとは?

インターフェースは、オブジェクトの構造を定義するための専用構文です。主に「オブジェクトの形を決めたい」場合に使われます。

interface User {
    name: string;
    age: number;
}

const user: User = {
    name: "Taro",
    age: 30,
};

拡張が得意

インターフェースは拡張(継承)に優れています。複数のインターフェースを結合したり、後からプロパティを追加したりできます。

interface Person {
    name: string;
}

interface Employee extends Person {
    employeeId: number;
}
// 宣言のマージも可能
interface Config {
    baseUrl: string;
}

interface Config {
    timeout: number;
}

const config: Config = {
    baseUrl: "https://example.com",
    timeout: 3000,
};

型エイリアス(type alias)とは?

型エイリアスは、任意の型に別名をつけるための構文です。オブジェクト型だけでなく、プリミティブ型やユニオン型など、柔軟に対応できます。

type User = {
    name: string;
    age: number;
};

const user: User = {
    name: "Hanako",
    age: 25,
};

ユニオン型やタプル型に便利

型エイリアスはユニオン型やタプル型に向いています。

type Status = "loading" | "success" | "error";

type Point = [number, number];

条件付き型などの高等型も扱える

type Nullable<T> = T | null;

const name: Nullable<string> = null;

使い分けの目安とベストプラクティス

インターフェースを使う場面

  • オブジェクトの構造を定義したいとき
  • クラスとの連携があるとき
  • 拡張性(extends, implements)を重視したいとき
interface Animal {
    name: string;
}

class Dog implements Animal {
    name = "Pochi";
}

型エイリアスを使う場面

  • プリミティブ型やユニオン型、タプル型などを使いたいとき
  • ジェネリクスや条件付き型を使いたいとき
  • 関数型を定義したいとき
type Add = (a: number, b: number) => number;

const add: Add = (x, y) => x + y;

両方で迷ったら

基本的にはインターフェースを優先し、「インターフェースでは表現しづらい型(ユニオン型など)」の場合に型エイリアスを選ぶのが良いでしょう。


実務での使い分け例

フロントエンド開発(React)

// Props の型定義にインターフェース
interface ButtonProps {
    label: string;
    onClick: () => void;
}

const Button = ({ label, onClick }: ButtonProps) => (
    <button onClick={onClick}>{label}</button>
);
// 状態管理などでユニオン型を使う場合は type
type Status = "idle" | "loading" | "success" | "error";

APIレスポンスの型定義

type ApiResponse<T> = {
    status: number;
    data: T;
};

まとめ:型の意図に応じて選択しよう

TypeScriptにおける「interface」と「type」は、どちらも型定義に使えますが、それぞれ得意な場面が異なります。インターフェースは「構造の定義」に強く、型エイリアスは「柔軟な型表現」に強い。目的に応じて選択すれば、より読みやすく、保守性の高いコードが書けるようになります。

Contact

ウェブサイトの制作や運用に関わる
お悩みやご相談
お気軽にお問い合わせ下さい

ウェブサイトと一口に言っても、企業サイトやECサイト、ブログ、SNSなど、その“カタチ”は目的に応じてさまざまであり、構築方法や使用する技術も大きく異なります。株式会社コナックスでは、お客様のご要望やブランドの個性を丁寧に汲み取り、最適なウェブサイトの“カタチ”をご提案いたします。

デザイン、ユーザビリティ、SEO対策はもちろん、コンテンツ制作やマーケティング戦略に至るまで、あらゆるフェーズでお客様のビジネスに寄り添い、成果につながるウェブサイトづくりをサポートいたします。私たちは、ウェブサイトの公開をゴールではなくスタートと捉え、お客様のビジネスの成功に向けて共に伴走してまいります。