TypeScript では、オブジェクトのプロパティ(キーと値のペア)に対して
というルールを付けられます。
これにより、値の書き換えを防いだり、値を必ずしも与えなくてよくしたりできます。(TypeScript)
readonly:一度決めた値を書き換えられないようにする仕組み
→ 間違えて値を変更してしまうのを防ぎます。(TypeScript)
optional(?):そのプロパティを なくてもよい と指定する仕組み
→ 必須じゃない値を表現できます。(TypeScript)
interface User {
readonly id: number;
name: string;
}
const user: User = { id: 1, name: "Alice" };
user.name = "Bob"; // OK: name は書き換え可能
user.id = 2; // ❌ コンパイルエラー: id は readonly
interface Options {
width?: number;
height?: number;
}
const o1: Options = {};
const o2: Options = { width: 100 }; // height はなくても OK