Dev Study
TypeScript コース

22. in と等価チェックによる絞り込み

typeof で区別できるのはプリミティブ型だけです。オブジェクト同士のユニオンは、"radius" in shape のように in 演算子で「そのプロパティを持っているか」を確かめて絞り込みます。

もう1つの基本が等価チェックです。value === null のように特定の値と比較すると、一致した側・しなかった側それぞれで型が絞り込まれます。「null かもしれない値」を安全に扱う実務の定番パターンです。

どの絞り込みも、書くのは普通の JavaScript の条件分岐だけです。「この条件が真なら型は何に決まるか」をコンパイラが追いかけてくれている、という見方ができるようになると読み書きが楽になります。

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

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