【TypeScript】typeとinterfaceの違い

スポンサーリンク

概要

TypeScriptで型を定義するには、typeまたはinterfaceを使う。

typeとinterfaceには細かい違いはいくつかあるが、普通に型を定義するだけであれば違いはない。

混在するとわかりづらくなるため、どちらを使うかプロジェクト内で統一するとよい。

定義方法の違い

  • typeは代入、interfaceは宣言

type

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

interface

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

オブジェクト配列を型として定義する場合

  • オブジェクト配列を型として定義する場合、typeは[]を使ってtype Xxx = {hoge: string}[];とすることができるが、interfaceでは[]を使うことはできない
  • interfaceの場合はオブジェクトの定義と、その配列を継承した型の定義が必要となる。
    interface Xxx { hoge: string }
    interface XxxArray extends Array<Xxx> {}

コメント