Skip to content
← Back to rules

unicorn/no-invalid-fetch-options 正しさ

This rule is turned on by default.

何をしますか

fetch() および new Request() において無効なオプションの使用を禁止します。特に、メソッドが GET または HEAD の場合にボディーが指定されないように制限し、それにより TypeError が発生することを防ぎます。

なぜ悪いですか?

fetch() 関数は、メソッドが GET もしくは HEAD であり、かつボディーが指定された場合に TypeError をスローします。これはコード内で予期せぬ振る舞いやエラーを引き起こす可能性があります。このような無効なオプションを禁止することで、このルールはリクエストが正しく設定されていることを保証し、不要なエラーを防ぎます。

このルールに対して誤りなコードの例:

javascript
const response = await fetch("/", { method: "GET", body: "foo=bar" });

const request = new Request("/", { method: "GET", body: "foo=bar" });

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

javascript
const response = await fetch("/", { method: "POST", body: "foo=bar" });

const request = new Request("/", { method: "POST", body: "foo=bar" });

使い方

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

json
{
  "rules": {
    "unicorn/no-invalid-fetch-options": "error"
  }
}
bash
oxlint --deny unicorn/no-invalid-fetch-options

参照