Skip to content
← Back to rules

eslint/no-unsafe-optional-chaining 正しさ

This rule is turned on by default.

何を行うか

不定値が許可されていない文脈でオプショナルチェイニングを使用することを禁止する

なぜ問題か

オプショナルチェイニング(?.)式は、未定義値を返すことで短絡処理を行うことがあります。 したがって、評価されたオプショナルチェイニング式を関数、オブジェクト、数値などとして扱うと、TypeErrorや予期しない結果が生じる可能性があります。たとえば:

このルールに違反する誤りのあるコードの例:

javascript
var obj = undefined;
1 in obj?.foo; // TypeError
with (obj?.foo); // TypeError
for (bar of obj?.foo); // TypeError
bar instanceof obj?.foo; // TypeError
const { bar } = obj?.foo; // TypeError

設定

このルールは、以下のプロパティを持つ設定オブジェクトを受け入れます。

disallowArithmeticOperators

type: boolean

default: false

オプショナルチェイニング式に対して算術演算を行うことを禁止する。 この値が true の場合、このルールは可能に NaN を引き起こす算術演算に対する警告を出します。

使用方法

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

json
{
  "rules": {
    "no-unsafe-optional-chaining": "error"
  }
}
bash
oxlint --deny no-unsafe-optional-chaining

参照