Dev Study
← 解説「インデックスシグネチャ」に戻る

サンプルコードで身につける: インデックスシグネチャ

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

1果物名と在庫数の辞書

キーの名前は決めず、値の型だけを決める最小の例です。定義していなかった orange のような新しいキーも自由に追加でき、値が number であることだけが保証されます。

TypeScript

2値がオブジェクトの商品カタログ

インデックスシグネチャの値の型には、オブジェクトの型も指定できます。商品コードをキーに価格と在庫を引く、マスタデータの参照でよく使う形です。

TypeScript

3キーの一覧を回して集計する

キーが動的なオブジェクトは、Object.keys でキーの一覧を取り出して処理します。月別売上のような辞書データを合計する、レポート集計の典型的な書き方です。

TypeScript

4固定のキーとインデックスシグネチャの併用

「total は必ずある + 候補者名のキーは自由」のように、固定プロパティとインデックスシグネチャは併用できます。注意点として、固定プロパティの型はインデックスシグネチャの値の型に合わせる必要があります。

TypeScript

5アクセスログをページ別に集計する

実行時に初めてキーが決まるデータの集計は、インデックスシグネチャの独壇場です。キーがまだ存在するか hasOwnProperty で確かめてから加算する流れは、ログ集計やグルーピング処理の定番です。

TypeScript