問題一覧に戻る
中級高度な型
問題37: Exclude'<'T, U'>'
Exclude'<'T, U'>'ユーティリティ型を使って、Union型から特定の型を除外する方法を学びます。条件に合わない型を取り除いて、より具体的な型を作成できます。
// Union型の定義
type AllEvents = "click" | "scroll" | "mouseover" | "keydown" | "keyup";
type KeyboardEvents = "keydown" | "keyup";
// Exclude型の使用
type NonKeyboardEvents = <AllEvents, KeyboardEvents>;
const mouseEvent: NonKeyboardEvents = "click";
// 複雑なUnion型での使用
type Result<T> = T | Error | null;
type ValidResult<T> = <Result<T>, Error | null>;