概要
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> {}
コメント