TypeScriptにおいて、変数の型をコンパイラが自動的に推測する機能を何と呼びますか?
解説
正解と要点正解は「型推論(Type Inference)」です。型推論とは、明示的な型注釈がなくても、代入された値や文脈からコンパイラが自動的に型を決定する仕組みのことです。なぜその答えなのかそれぞれの選択肢を確認します。型アサーション — 開発者が「この値はこの型である」とコンパイラに明示的に伝える構文です(value as stringなど)。コンパイラが自動で推測するのではなく、人間が型を上書き指定する操作なので該当しません。型推論 — コンパイラが初期化値や関数の戻り値などの文脈から型を自動判定する機能です。まさに問題文の説明と一致します。型ガード — 条件分岐の中で型を絞り込むテクニックです(typeof x === 'string'など)。推測ではなく、既存の型を狭める操作です。型キャスト — 他言語(JavaやC#など)で使われる用語で、TypeScriptの公式ドキュメントではこの呼称を使いません。意味的には型アサーションに近く、自動推測とは異なります。背景・仕組みTypeScriptの型推論は主に以下の場面で働きます。変数の初期化時 — const x = 42 と書くだけでxはnumber型(正確にはリテラル型42)と推論されます。関数の戻り値 — return文の式から戻り値の型が自動決定されます。コンテキスト型付け — コールバック関数の引数など、使われる文脈から型が決まるケースもあります。たとえばarray.map(item => ...)のitemは配列の要素型から推論されます。const count = 10; // number型と推論 const name = 'Alice'; // string型と推論 const items = [1, 2, 3]; // number[]型と推論 function add(a: number, b: number) { return a + b; // 戻り値はnumber型と推論 }この仕組みにより、すべての変数に型注釈を書かなくても型安全なコードを維持できます。実務での活用例型推論を活かすベストプラクティスとして、以下の点が挙げられます。推論に任せられる場面では型注釈を省略する — 冗長なconst x: number = 42よりconst x = 42の方が可読性が高く、リファクタリング時の修正箇所も減ります。関数の引数には明示的に型を書く — 引数は呼び出し元の文脈がないと推論できないため、型注釈を付けるのが原則です。推論結果の確認 — エディタ上で変数にカーソルを合わせると推論された型が表示されます。意図しない型(たとえばany)になっていないか定期的に確認する習慣が、型安全性を保つ鍵です。