IT-Q

@ts-expect-error を使うのが適切なのは、どういう場面ですか。

型のテストで「この使い方はエラーになる」と確かめるときと、ライブラリの型定義の誤りをしのぐときです。直ればエラーになるので外し忘れません。それ以外は原因を直します。

面接官が見ているのは黙らせることが正当な場面を、例で言えるか。

これは「// @ts-ignore が多く使われていました。// @ts-expect-error との違いは何ですか。」への追撃質問です。

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

  • 型のテストで、わざと間違った使い方がエラーになることを確かめるとき
    その通りです。エラーにならなかったらテストが失敗する、という形で使えます。
  • 外部ライブラリの型定義が誤っていて、修正が出るまでの間しのぐとき
    正当な場面です。修正が入ればエラーが消え、指示が不要だと知らされるので、外し忘れません。
  • 型エラーが多すぎて直す時間が無いとき
    一時的には使えますが、理由が「時間が無い」だけなら負債を積んでいるだけです。期限と理由を残します。
  • エラーの原因が分からないとき
    原因が分からないまま黙らせると、本当の不具合を隠すことになります。まず原因を確かめます。

模範解答

代表的な場面は2つです。

1つ目は型のテストです。ある使い方が型エラーになることを確かめたいとき、その行に @ts-expect-error を付けます。エラーにならなければ、指示が不要だというエラーが出るので、「間違った使い方を型で防げているか」をテストできます。

2つ目は、外部ライブラリの型定義が誤っていて、修正が出るまでしのぐときです。修正が入ればエラーが消え、@ts-expect-error 自体がエラーになるので、外し忘れません。

どちらの場合も、なぜ付けたかをコメントに残します。「原因が分からないから黙らせる」は、本当の不具合を隠すことになります。

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