TS, type vs interface


type vs interface


TSにおけるtype aliasの方法とインタフェースを比較する方法

共通点


共通点はtypeとinterfaceを使用してタイプを定義し、指定することです.

コード#コード#

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

interface Animal {
  name: string;
  age: number;
}
両方が同じようにオブジェクトを代入する場合は、タイプを指定します.

差異


違いは、共通点で見たコードのように、宣言にはtypeの書き込み、インタフェースの書き込み、「=」と宣言するかどうかの違いがあるが、拡張タイプの方法には最大の違いがある.

コード#コード#

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

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

type Person = Animal & {
  address: string;
}

interface Person extends Animal {
  address: string;
}
typeとinterfaceはいずれもPersonにAnimalタイプを拡張しているが,拡張の方法は異なる.

n/a.結論


typeとinterfaceは拡張の面で最大の違いがある.
type
=演算子の後に拡張するタイプの別名と&演算子を付けることで拡張
interface
新しく指定したインタフェース名、extendsシンボル、および展開するインタフェース名を追加して展開