← TypeScript コース
29. 型述語 is — 自作の型ガード
型述語は、自作の関数を絞り込みに使えるようにする仕組みです。関数の戻り値の型の位置に pet is Fish と書くと「この関数が true を返したら pet は Fish 型」とコンパイラに伝わり、if 文でその関数を呼ぶだけで型が絞り込まれます。
実務で特に効くのが配列の filter との組み合わせです。普通の boolean を返す関数で filter しても要素の型はユニオンのままですが、型述語付きの関数を渡すと、結果の配列が Fish[] のように絞り込まれた型になります。判定ロジックに名前を付けて使い回せるのも利点です。
つまずきポイントは、判定の中身が正しいかまではコンパイラが保証しないことです。条件を書き間違えていても宣言どおりに絞り込まれてしまうため、「自分が正しさを保証する」書き方だと意識して、判定条件は慎重に書きましょう。
▶ サンプルコードを実行してみよう(自由に書き換えてOK)
TypeScript
サンプルコードで身につける(5本) →
学んだ概念を、素朴な例から実務寄りの例まで5つの具体例で確認します。
公式ドキュメントで詳しく ↗