← TypeScript コース
46. インデックスアクセス型 — T[K] で型の一部を取り出す
インデックスアクセス型は、オブジェクト型からプロパティの型を取り出す書き方です。配列の値を arr[0] で取り出すのと同じ感覚で、User["id"] と書くと User の id プロパティの型(number など)が得られます。角括弧の中に書くのは値ではなくリテラル型です。
実務では「大きな型の一部だけを別の場所で使いたい」ときに使います。関数の引数を User["id"] 型にしておけば、User 側で id の型が number から string に変わっても引数の型が自動で追従し、型の二重管理がなくなります。
配列にも使えます。(typeof colors)[number] のように number でアクセスすると「配列の要素の型」が取り出せます。つまずきポイントは、ドット記法の User.id では書けないことと、["id"] の部分が文字列の値ではなく型であることです。
▶ サンプルコードを実行してみよう(自由に書き換えてOK)
TypeScript
サンプルコードで身につける(5本) →
学んだ概念を、素朴な例から実務寄りの例まで5つの具体例で確認します。
公式ドキュメントで詳しく ↗