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は「印刷された注文票(フォーム)」のようなものです。必須項目と、任意(?)の項目を明確に分けられます。