Dev Study
← 解説「Record — キーと値の型を決める」に戻る

サンプルコードで身につける: Record — キーと値の型を決める

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

1Record<string, number> の辞書

キーが文字列・値が数値の「辞書」を Record で書く、最も素朴な形です。インデックスシグネチャと同じ意味をより短く書けて、値の型に合わないデータはエラーになります。

TypeScript

2リテラルのキーで網羅を強制する

キーにリテラル型のユニオンを渡すと、全候補ぶんの定義がないとエラーになるのが Record の真価です。ステータスと表示ラベルの対応表で、候補が増えたときの追加漏れをコンパイラに見張らせます。

TypeScript

3値がオブジェクトの対応表

Record の値はプリミティブに限らず、オブジェクトでも構いません。プランごとの上限や料金のような「候補の数だけある設定のまとまり」を1つの表に集約する、設定管理の定番パターンです。

TypeScript

4集計結果の入れ物にする

キーが実行時に決まる集計処理では、結果の入れ物を Record<string, number> にしておくと「キーは自由・値は必ず数値」を保証できます。アクセスログの集計やカウント処理など、データ処理の現場で頻出の形です。

TypeScript

5処理の対応表 — 値を関数にする

Record の値には関数も入れられます。レベルごとの処理を if の連鎖ではなく「対応表から関数を引いて呼ぶ」形にすると、レベルを追加したときに対応表側の定義漏れをコンパイラが検出してくれます。

TypeScript