TypeScript の Type Guard を使う

Nov 1, 2019 08:03 · 217 words · 1 minute read

typescriptでは型をチェックするような分岐を書くことができる
その分岐の中だと「この変数はこの型」というのをコンパイラ/エディタが認識してくれる

型をチェックできる条件の書き方は、返り値の型のところに工夫をすればよい

  • 型を pet is Fish と書いて
  • booleanを返す関数を書く
function isFish(pet: Fish | Bird): pet is Fish {
    return (pet as Fish).swim !== undefined;
}

こうすると isFish が true だった場合の分岐で型推論が効くようになる

if (isFish(obj) {
  ...  // ここは型推論が効く
})

参考

tweet Share