IT-Q

関数の引数に型を書かないと、どうなりますか。

暗黙の any になり、関数の中が検査されなくなります。strict に含まれる noImplicitAny が有効ならエラーです。例外はコールバックで、渡す先の型から推論されます。

面接官が見ているのは推論されるものと、されないものの区別。

よくある答えと、面談でどう見られるか

  • 暗黙の any になる。noImplicitAny が有効ならエラーになる
    引数は呼び出し側から推論されません。strict に含まれる noImplicitAny が止めます。
  • 呼び出し側で渡した値から自動で推論される
    呼び出し側の値からは推論されません。例外はコールバックで、渡す先の型から推論されます(文脈的型付け)。
  • unknown になる
    そうなれば安全ですが、実際は any です。だから noImplicitAny で止めます。
  • 戻り値と同じ型になる
    戻り値とは関係ありません。

模範解答

型を書かない引数は暗黙の any になります。関数の中で何をしても検査されないので、型を付けた意味がほとんど無くなります。

これを止めるのが noImplicitAny で、strict に含まれています。有効にすると、型の分からない引数はエラーになります。

例外はコールバックです。arr.map(s => s.length) の s は、map が受け取る関数の型から推論されます。これを文脈的型付けと呼びます。

変数の初期値や関数の戻り値も推論されるので、毎回書く必要はありません。「単独で宣言した関数の引数は推論されない」と覚えておくと、どこに注釈を書けばよいかが分かります。

対象: TypeScript 5.x〜7.0 照合した一次資料: 公式ドキュメント 照合: 2026-10-25 最終更新: 2026-10-25
お使いの版で挙動が違う場合があります。誤りに気づいたらこの解説を報告するから教えてください。