unicorn/numeric-separators-style 风格
它的作用
强制使用数字分隔符对数字进行分组的规范。
为什么这是不好的?
长数字会变得非常难以阅读,因此将数字划分为若干组,并用下划线 _ 分隔,对于保持代码清晰至关重要。该规则还通过检查数字分组的大小是否正确,来强制使用数字分隔符的正确方式。
示例
此规则的错误代码示例:
const invalid = [1_23_4444, 1_234.56789, 0xab_c_d_ef, 0b10_00_1111, 0o1_0_44_21, 1_294_28771_2n];此规则的正确代码示例:
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_CD、0Xab_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 启用此规则,可以使用:
{
"rules": {
"unicorn/numeric-separators-style": "error"
}
}oxlint --deny unicorn/numeric-separators-style