Skip to content
← Back to rules

typescript/ban-ts-comment 細部にこだわる

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

何ができるか

このルールにより、コードベース内で許可するべきディレクティブコメントを設定できます。

なぜ悪いのか

TypeScriptのコンパイラエラーを抑制するためにTypeScriptディレクティブを使用すると、全体的なTypeScriptの効果が低下します。

このルールに対して不正なコードの例:

ts
if (false) {
  // @ts-ignore: 到達不可能なコードエラー
  console.log("hello");
}

設定

このルールでは、さまざまなTypeScriptディレクティブコメントの扱い方を指定できます。

各ディレクティブ(@ts-expect-error@ts-ignore@ts-nocheck@ts-check)に対して、以下のオプションのいずれかを選択できます:

  • true:ディレクティブを完全に禁止し、コードベース全体での使用を防ぎます。
  • false:制限なくディレクティブを許可します。
  • "allow-with-description":説明文が付いていた場合にのみディレクティブを許可します。説明文は minimumDescriptionLength で指定された最小長さ以上でなければなりません。
  • { "descriptionFormat": "<regex>" }:説明文が指定された正規表現パターンと一致する場合にのみディレクティブを許可します。

たとえば:

json
{
  "ts-expect-error": "allow-with-description",
  "ts-ignore": true,
  "ts-nocheck": { "descriptionFormat": "^: TS\\d+ なぜなら .+$" },
  "ts-check": false,
  "minimumDescriptionLength": 3
}

このルールは次のプロパティを持つ構成オブジェクトを受け入れます:

minimumDescriptionLength

type: integer

default: 3

allow-with-description を使用する際の最低説明文の長さ。

ts-check

@ts-check ディレクティブの扱い方。

ts-expect-error

@ts-expect-error ディレクティブの扱い方。

ts-ignore

@ts-ignore ディレクティブの扱い方。

ts-nocheck

@ts-nocheck ディレクティブの扱い方。

使用方法

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

json
{
  "rules": {
    "typescript/ban-ts-comment": "error"
  }
}
bash
oxlint --deny typescript/ban-ts-comment

参照