unicorn/prefer-number-properties 限制
它的作用
禁止将 parseInt()、parseFloat()、isNan()、isFinite()、Nan、Infinity 以及 -Infinity 作为全局变量使用。
为什么这是不好的?
ECMAScript 2015 将这些全局变量移至 Number 构造函数中,以保持一致性并稍作改进。此规则强制使用这些方法,以减少对全局变量的依赖:
Number.parseInt()代替parseInt()Number.parseFloat()代替parseFloat()Number.isNaN()代替isNaN()(它们的行为略有不同)Number.isFinite()代替isFinite()(它们的行为略有不同)Number.NaN代替NaNNumber.POSITIVE_INFINITY代替InfinityNumber.NEGATIVE_INFINITY代替-Infinity
示例
此规则的错误代码示例:
javascript
const foo = parseInt("10", 2);
const bar = parseFloat("10.5");此规则的正确代码示例:
javascript
const foo = Number.parseInt("10", 2);
const bar = Number.parseFloat("10.5");配置
此规则接受一个配置对象,包含以下属性:
checkInfinity
type: boolean
default: false
若设置为 true,则检查是否将 Infinity 和 -Infinity 作为全局变量使用。
checkNaN
type: boolean
default: true
若设置为 true,则检查是否将 NaN 作为全局变量使用。
如何使用
要通过配置文件或命令行启用此规则,可以使用:
json
{
"rules": {
"unicorn/prefer-number-properties": "error"
}
}bash
oxlint --deny unicorn/prefer-number-properties