😺

TypeScriptの型推論と型を指定するべきケース

2021/01/23に公開

型推論について

変数の定義や関数の戻り値の場合に明示的に型を指定しなくても型を判断してくれる機能のこと

こんな感じで変数定義の時、暗黙的にnumber型として扱ってくれている。

こう書かなくて良くなる。

メソッドの引数を受け取る場合

変数に値を代入する場合は右式が何の値か明確だったため、型推論をすることができた。

ただ以下のように引数を受け取る場合は、何の値が入ってきているかTypeScriptは判断できない。
そのため、「型が判断できないよ」という意味のany型になってしまう。

この場合は型を明示的に指定する必要がある。

メソッドの戻り値の場合

こんなメソッドの場合は引数はboolean型が指定されており、
右式はboolean型であると型推論できるので、戻り値はboolean型だと推論することができる。

ただ型推論できない戻り値の場合もあるし、
使う側が用途をハッキリわかるように戻り値には型を指定する癖をつけておいた方がいい。

結論

インプットである引数とアウトプットである戻り値にはそれぞれ型を明示的に指定する

参考

型推論 - TypeScript Deep Dive 日本語版

Discussion