Dev Study
← 解説「readonly プロパティ」に戻る

サンプルコードで身につける: readonly プロパティ

解説で学んだ概念を、5つの具体例で確認します。素朴な例から実務寄りの例へと進みます。

1書き換えできない会員IDを持つカード

readonly を付けたプロパティは初期化の後に再代入できなくなります。readonly でないプロパティは普通に変更できるので、両方を並べて違いを確かめる最小の例です。

TypeScript

2関数に渡したデータを書き換えから守る

引数の型に readonly を付けると、受け取った関数の中でも書き換えが禁止されます。「この関数はデータを読むだけで変更しない」という約束を型で表せるのがポイントです。

TypeScript

3すべて readonly のアプリ設定

全プロパティを readonly にすると、定数の集まりとして安全に共有できるオブジェクトになります。アプリ名やバージョンなど「起動後に変わってはいけない設定値」を守る実務の定番です。

TypeScript

4IDは固定、得点だけ変わるプレイヤー

「変わってはいけない値」と「変わってよい値」を1つのオブジェクトの中で区別するのが readonly の実践的な使い方です。ID は readonly で守りつつ、得点は関数から自由に更新できます。

TypeScript

5変更はコピーした新しいオブジェクトで

readonly を含むデータを「変更」したいときは、元を書き換えるのではなくスプレッド構文でコピーして新しいオブジェクトを作ります。元データを壊さず履歴も追いやすい、実務で推奨される更新スタイルです。

TypeScript