typescript/prefer-ts-expect-error 細部までこだわる
何をするか
@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