@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
お使いの版で挙動が違う場合があります。誤りに気づいたらこの解説を報告するから教えてください。