Dev Study
TypeScript コース

48. infer — 条件型の中で型を取り出す

infer は条件型の extends 節の中で使い、マッチした型の一部に名前を付けて取り出すキーワードです。T extends (infer E)[] ? E : T と書くと、T が配列なら要素の型を E として捕まえ、結果として返せます。

実務では「すでにある型から中身の型だけ欲しい」場面で使います。配列の要素型や Promise の中身の型を、手書きで二重管理せずに既存の型から自動で導出できます。後のレッスンで学ぶ ReturnType などの組み込み型も infer で実装されています。

つまずきポイントは書ける場所の制限です。infer は条件型の extends 節の中でしか使えず、マッチしなかった側(? : の後ろ)では infer で付けた名前を参照できません。false 側には T そのものや never を返すのが定番です。

▶ サンプルコードを実行してみよう(自由に書き換えてOK)

TypeScript
サンプルコードで身につける(5本) →

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

公式ドキュメントで詳しく ↗