1書き換えできない会員IDを持つカード
readonly を付けたプロパティは初期化の後に再代入できなくなります。readonly でないプロパティは普通に変更できるので、両方を並べて違いを確かめる最小の例です。
TypeScript
2関数に渡したデータを書き換えから守る
引数の型に readonly を付けると、受け取った関数の中でも書き換えが禁止されます。「この関数はデータを読むだけで変更しない」という約束を型で表せるのがポイントです。
TypeScript
3すべて readonly のアプリ設定
全プロパティを readonly にすると、定数の集まりとして安全に共有できるオブジェクトになります。アプリ名やバージョンなど「起動後に変わってはいけない設定値」を守る実務の定番です。
TypeScript
4IDは固定、得点だけ変わるプレイヤー
「変わってはいけない値」と「変わってよい値」を1つのオブジェクトの中で区別するのが readonly の実践的な使い方です。ID は readonly で守りつつ、得点は関数から自由に更新できます。
TypeScript
5変更はコピーした新しいオブジェクトで
readonly を含むデータを「変更」したいときは、元を書き換えるのではなくスプレッド構文でコピーして新しいオブジェクトを作ります。元データを壊さず履歴も追いやすい、実務で推奨される更新スタイルです。
TypeScript