問題一覧に戻る
上級高度な型
問題52: 型の絞り込み
typeofやin演算子を使った型の絞り込みについて学びます。TypeScriptのコントロールフロー解析を活用して、条件分岐内で自動的に型を絞り込む方法を習得します。Union型を扱う際の基本的なパターンを理解します。
// typeof演算子による絞り込み
function process(value: string | number) {
if ( value === "string") {
return value.toUpperCase();
}
return value * 2;
}
// in演算子による絞り込み
type Cat = { meow: () => void };
type Dog = { bark: () => void };
function makeSound(pet: Cat | Dog) {
if ("meow" pet) {
pet.meow();
}
}