Skip to content
← Back to rules

typescript/prefer-ts-expect-error 細部までこだわる

🛠️ An auto-fix is available for this rule.

何をするか

@ts-ignore の代わりに @ts-expect-error を使用することを強制します。

なぜ悪いのか

TypeScript では、エラーが発生している行の直前に @ts-ignore もしくは @ts-expect-error というコメントを書くことで、その行のすべてのエラーを無効化できます。 この2つのディレクティブは基本的に同じ働きをしますが、@ts-expect-error は、実際にはエラーが発生していない行の直前に記述された場合に型エラーを引き起こします。

つまり、@ts-ignore が忘れられやすく、本来のエラーが修正された後もコード中に残り続ける可能性があります。 これは危険です。なぜなら、その行に新たなエラーが発生した場合、すでに忘れ去られた @ts-ignore によってエラーが無視されてしまい、見逃されてしまうからです。

このルールに違反する誤ったコードの例:

ts
// @ts-ignore
const str: string = 1;

/**
 * 説明コメント
 *
 * @ts-ignore */
const multiLine: number = "value";

このルールに準拠する正しいコードの例:

ts
/**
 * 説明コメント
 *
 * @ts-expect-error */
const multiLine: number = "value";

利用方法

設定ファイルまたは CLI でこのルールを有効化するには、次のようにします:

json
{
  "rules": {
    "typescript/prefer-ts-expect-error": "error"
  }
}
bash
oxlint --deny typescript/prefer-ts-expect-error

参照