Skip to content
← Back to rules

eslint/no-implicit-coercion スタイル

An auto-fix is available for this rule.

何ができるか

!!+""+ などの演算子を使用したショートカット型変換を禁止します。

なぜ問題か

演算子による暗黙的な型変換は、Boolean()Number()String() のような明示的な型変換関数を使う場合に比べて、意図が分かりにくくなることがあります。明示的な変換を使うことで、意図が明確になり、コードの可読性が向上します。

このルールに対して 誤った 例:

javascript
var b = !!foo;
var n = +foo;
var s = "" + foo;

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

javascript
var b = Boolean(foo);
var n = Number(foo);
var s = String(foo);

設定

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

allow

type: string[]

許可する演算子のリスト。有効な値:"!!""~""+""-""- -""*"

boolean

type: boolean

default: true

true である場合、暗黙的なブール型変換(例:!!foo)に対して警告します。

disallowTemplateShorthand

type: boolean

default: false

true である場合、文字列変換にテンプレートリテラルを使用することを禁止します(例:`${foo}`)。

number

type: boolean

default: true

true である場合、暗黙的な数値型変換(例:+foo)に対して警告します。

string

type: boolean

default: true

true である場合、暗黙的な文字列型変換(例:"" + foo)に対して警告します。

使用方法

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

json
{
  "rules": {
    "no-implicit-coercion": "error"
  }
}
bash
oxlint --deny no-implicit-coercion

参照