← TypeScript コース
55. Exclude / Extract / NonNullable
この3つはユニオン型を加工するユーティリティ型です。Exclude<T, U> は T のユニオンから U に当てはまる候補を取り除き、Extract<T, U> は逆に当てはまる候補だけを残します。NonNullable<T> は null と undefined を取り除きます。
実務では「既存のユニオンの一部だけの型が欲しい」場面で使います。タスクの状態から「アーカイブ済みを除いた操作可能な状態」を Exclude で作っておけば、元のユニオンに状態が増えても派生型が自動で追従します。
この3つはすべて条件型(T extends U ? ... : ...)で実装されており、ユニオン型を渡すと候補1つずつに条件が適用されます。「ユニオンは1候補ずつ分配される」というこの挙動を覚えておくと、結果の型を正しく予想できるようになります。
▶ サンプルコードを実行してみよう(自由に書き換えてOK)
TypeScript
サンプルコードで身につける(5本) →
学んだ概念を、素朴な例から実務寄りの例まで5つの具体例で確認します。
公式ドキュメントで詳しく ↗