TypeScriptの型推論を理解する:初級者が最初につまずくポイント解説

TypeScript

TypeScriptの型推論を理解する

はじめに:なぜ型推論が重要か?

TypeScriptでは、明示的に型を指定しなくても、変数の初期値などから自動的に型を推論してくれる機能がある。これは便利だけど、逆にどこまで型を指定すべきか迷いやすいポイントでもある。

読者
読者

結局、型ってどこまで書くべき?

特に初学者にとっては「型を書いた方がいいのか?推論に任せるべきか?」という判断が難しい。この記事では、実例を通して型推論の動作や、どんなときに明示的な型指定が必要かを紹介する。

ごりら
ごりら

推論で足りるケースと、バグを防ぐために型を明示すべきケースを区別しよう。

基本の型推論

次のように書いた場合、TypeScriptは変数の型を自動的に `number` と推論する。

読者
読者

これはなんとなくわかるかも![/reader>

let count = 5; // 推論される型: number

関数の戻り値や引数でも、ある程度は型を推論してくれるが、複雑な構造になると途端に限界が見えてくる。

ごりら
ごりら

関数の戻り値は明示しよう。意図が伝わるし、将来的なリファクタでも安心。

推論が効かないパターン

オブジェクトリテラルや関数の引数として使ったときに、型推論の限界が見えることがある。

読者
読者

具体的にどういうケース?[/reader>

function greet(user: any) {
  console.log("Hello " + user.name);
}
greet({ name: "Taro" }); // エラーなし

このコードは一見正しく見えるけど、関数の `user` 引数に型がないため、将来的に `name` プロパティ以外を使うときに型安全が失われる。

ごりら
ごりら

この場合は `user: { name: string }` のように明示しよう!

まとめ

TypeScriptの型推論は便利だけど、すべてを任せきりにするのは危険。基本は推論に頼りつつ、関数の引数や戻り値、外部とやりとりする部分は明示的に型を指定するのが安全。

ごりら
ごりら

実践ポイント:変数は推論でOK、関数や外部データは型を明示すること!

コメント

タイトルとURLをコピーしました