← TypeScript コース
31. Record — キーと値の型を決める
Record<K, V> は「キーが K 型、値が V 型のオブジェクト」を表すユーティリティ型です。Record<string, number> はインデックスシグネチャの { [key: string]: number } と同じ意味を、より短く書けます。
Record が真価を発揮するのは、K にリテラル型のユニオンを渡したときです。Record<"easy" | "normal" | "hard", number> とすると、3つのキーをすべて定義しないとエラーになり、「全候補ぶんの値を漏れなく用意する」ことを型が保証してくれます。
実務では、難易度ごとの設定値やステータスごとの表示ラベルなど、「候補の数だけ対応表を作る」場面の定番です。候補が増えたとき、対応表の追加漏れをコンパイラが教えてくれます。
▶ サンプルコードを実行してみよう(自由に書き換えてOK)
TypeScript