【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> {}

【新しい記事】

【古い記事】

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です