Skip to content
← Back to rules

unicorn/numeric-separators-style 风格

An auto-fix is available for this rule.

它的作用

强制使用数字分隔符对数字进行分组的规范。

为什么这是不好的?

长数字会变得非常难以阅读,因此将数字划分为若干组,并用下划线 _ 分隔,对于保持代码清晰至关重要。该规则还通过检查数字分组的大小是否正确,来强制使用数字分隔符的正确方式。

示例

此规则的错误代码示例:

javascript
const invalid = [1_23_4444, 1_234.56789, 0xab_c_d_ef, 0b10_00_1111, 0o1_0_44_21, 1_294_28771_2n];

此规则的正确代码示例:

javascript
const valid = [1_234_567, 1_234.567_89, 0xab_cd_ef, 0b1000_1111, 0o10_4421, 1_294_287_712n];

配置

此规则接受一个配置对象,包含以下属性:

binary

type: object

针对二进制字面量(例如 0b1010_0001 及 bigint 变体)的配置。 控制数字如何分组以及何时应用分隔符。

binary.groupLength

type: integer

插入数字分隔符时每组的数字位数。 例如,groupLength 为 3 时,会将 1234567 格式化为 1_234_567

binary.minimumDigits

type: integer

应用分组前所需的最少数字位数。 数字位数少于该阈值的值将不会被分组。

hexadecimal

type: object

针对十六进制字面量(例如 0xAB_CD0Xab_cd 及 bigint 变体)的配置。 控制数字如何分组以及何时应用分隔符。

hexadecimal.groupLength

type: integer

插入数字分隔符时每组的数字位数。 例如,groupLength 为 3 时,会将 1234567 格式化为 1_234_567

hexadecimal.minimumDigits

type: integer

应用分组前所需的最少数字位数。 数字位数少于该阈值的值将不会被分组。

number

type: object

针对十进制数字(整数部分、小数部分和指数部分)的配置。 控制数字如何分组以及何时应用分隔符。

number.groupLength

type: integer

插入数字分隔符时每组的数字位数。 例如,groupLength 为 3 时,会将 1234567 格式化为 1_234_567

number.minimumDigits

type: integer

应用分组前所需的最少数字位数。 数字位数少于该阈值的值将不会被分组。

octal

type: object

针对八进制字面量(例如 0o1234_5670 及 bigint 变体)的配置。 控制数字如何分组以及何时应用分隔符。

octal.groupLength

type: integer

插入数字分隔符时每组的数字位数。 例如,groupLength 为 3 时,会将 1234567 格式化为 1_234_567

octal.minimumDigits

type: integer

应用分组前所需的最少数字位数。 数字位数少于该阈值的值将不会被分组。

onlyIfContainsSeparator

type: boolean

默认值:false

仅当数字字面量已包含分隔符(_)时才强制执行该规则。

当设置为 true 时,不含分隔符的数字将保持不变;当设置为 false(默认值),即使尚未包含分隔符,也会对符合条件的数字强制应用分组。

如何使用

要通过配置文件或 CLI 启用此规则,可以使用:

json
{
  "rules": {
    "unicorn/numeric-separators-style": "error"
  }
}
bash
oxlint --deny unicorn/numeric-separators-style

参考资料