Skip to content

noGlobalIsFinite

¥Summary

¥How to configure

biome.json
{
"linter": {
"rules": {
"suspicious": {
"noGlobalIsFinite": "error"
}
}
}
}

¥Description

使用 Number.isFinite 而不是全局 isFinite

¥Use Number.isFinite instead of global isFinite.

Number.isFinite()isFinite() 没有相同的行为。当 isFinite() 的参数不是数字时,首先将值强制转换为数字。Number.isFinite() 不执行此强制。因此,这是一种更可靠的方法来测试数字是否有限。

¥Number.isFinite() and isFinite() do not have the same behavior. When the argument to isFinite() is not a number, the value is first coerced to a number. Number.isFinite() does not perform this coercion. Therefore, it is a more reliable way to test whether a number is finite.

¥Examples

¥Invalid

isFinite(false); // true
code-block.js:1:1 lint/suspicious/noGlobalIsFinite  FIXABLE  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

isFinite is unsafe. It attempts a type coercion. Use Number.isFinite instead.

> 1 │ isFinite(false); // true
^^^^^^^^
2 │

See the MDN documentation for more details.

Unsafe fix: Use Number.isFinite instead.

1 - isFinite(false);·//·true
1+ Number.isFinite(false);·//·true
2 2

¥Valid

Number.isFinite(false); // false

¥Related links