created: 2019-10-31T23:03:40.000Z

TypeScript の Type Guard を使う

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

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

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

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

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

参考

失敗から学ぶユーザインタフェース 世界はBADUI(バッド・ユーアイ)であふれている
[ad] 失敗から学ぶユーザインタフェース 世界はBADUI(バッド・ユーアイ)であふれている
中村 聡史 (大型本)