Interface とは
オブジェクトの「形」を定義するための設計図です。JavaScriptでは自由だったオブジェクトの構造にルールを持たせます。
interface User {
name: string;
age: number;
}
const user1: User = { name: "Alice", age: 25 }; // OK
// const user2: User = { neme: "Bob" }; // エラー:名前が違う、あるいは年齢が足りない
メリット
- 再利用性: 関数の引数や配列の型として何度も使い回せます。
- 強力な補完: プロパティ名を打つ際にエディタが候補を出してくれます。
- 一貫性: チーム全員が同じデータ構造に従うことを強制できます。
オプショナルプロパティ (?)
「あってもなくても良い項目」には、プロパティ名の後ろに ? を付けます。
interface Profile {
name: string;
bio?: string; // bio(自己紹介)は省略可能
}
[!TIP] Interfaceは「印刷された注文票(フォーム)」のようなものです。必須項目と、任意(?)の項目を明確に分けられます。