ハンバーガーメニュー

Menu

← Quiz 一覧に戻る

Type Inference

contextual typingがどのように関数式のパラメータ型を決めてエラー検出につなげているかを、`window.onmousedown` や `window.onscroll` の例を踏まえて説明してください。

🟡 応用💀 Learning1回出題済み記事を読む →

模範解答

contextual typingでは、式が置かれている場所の型情報(たとえば `Window.onmousedown` や `Window.onscroll` の宣言型)から、右辺に書かれた関数式のパラメータ型を推論します。その結果、`onmousedown` に代入した関数では引数が `MouseEvent` と推論され `button` プロパティにはアクセスできる一方、`onscroll` では `UIEvent` と推論され `button` プロパティが存在しないためエラーとして検出されます。

🔑 右辺の関数に型注釈がなくても、左辺(コンテキスト)の型からパラメータ型が推論され、その型に基づいてプロパティの妥当性チェックが行われる仕組みを説明できるか。


回答履歴 (1回)

#1   2026.03.08不正解 (2/5)

あなたの回答

代入先の変数から推論を行い、関数の引数が代入先の変数と見做して型を利用することができる。そのため、代入先に存在しないプロパティではエラーになる

フィードバック

回答は「代入先から型が推論され、それに存在しないプロパティでエラーになる」という方向性は概ね合っていますが、「代入先の変数と見做して」という表現が不正確です。正確には、`Window.onmousedown` や `Window.onscroll` の宣言型など左辺のコンテキスト型から右辺関数のパラメータ型を推論し、その推論された型に基づいて `button` プロパティの妥当性がチェックされます。この点を明示できると、模範解答により近い説明になります。