eslint/no-compare-neg-zero 正しさ
何を行うか
-0 との比較を禁止する
なぜ問題なのか
このルールは、-0 との比較を試みるコードに対して警告すべきである。なぜなら、そのような比較は意図した通りに動作しないからである。具体的には、x === -0 というコードは +0 と -0 の両方で真となる。著者はおそらく Object.is(x, -0) と意図していたはずである。
例
このルールに違反する不適切なコードの例:
javascript
if (x === -0) {
// doSomething()...
}javascript
if (-0 > x) {
// doSomething()...
}このルールに準拠する適切なコードの例:
javascript
if (x === 0) {
// doSomething()...
}javascript
if (Object.is(x, -0)) {
// doSomething()...
}javascript
if (0 > x) {
// doSomething()...
}使用方法
設定ファイルまたは CLI でこのルールを有効化するには、次のように使用できます:
json
{
"rules": {
"no-compare-neg-zero": "error"
}
}bash
oxlint --deny no-compare-neg-zero