Skip to content
← Back to rules

unicorn/numeric-separators-style Style

🛠️ An auto-fix is available for this rule.

它的作用

通过数字分隔符强制使用数字分组的约定。

这为什么不好?

一长串数字可能难以阅读, 也可能难以一眼确定数字的值。 使用数字分隔符(_)将数字拆分开来可以大大 提高可读性。

比较下面这两个数字,以及理解它们数量级的难易程度:

js
1000000000;
1_000_000_000;

此规则还会强制正确的分组大小,例如 要求每 3 位使用一次 _ 分隔符。

示例

此规则的错误代码示例:

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

default: false

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

当为 true 时,没有分隔符的数字将保持原样;当为 false(默认)时, 即使尚未包含分隔符,也会对符合条件的数字强制分组。

如何使用

To enable this rule using the config file or in the CLI, you can use:

json
{
  "rules": {
    "unicorn/numeric-separators-style": "error"
  }
}
ts
import { defineConfig } from "oxlint";

export default defineConfig({
  rules: {
    "unicorn/numeric-separators-style": "error",
  },
});
bash
oxlint --deny unicorn/numeric-separators-style

版本

此规则于 v0.0.19 中添加。

参考