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
2進数リテラル(例:0b1010_0001 および bigint 形式)に関する設定。 数字のグループ分け方や区切り記号の適用タイミングを制御します。
binary.groupLength
type: integer
数値区切り記号を挿入する際のグループごとの桁数。 たとえば、groupLength が 3 の場合、1234567 は 1_234_567 にフォーマットされます。
binary.minimumDigits
type: integer
グループ化が適用されるまでに必要な最小桁数。 この閾値より少ない桁数の値については、グループ化は行われません。
hexadecimal
type: object
16進数リテラル(例:0xAB_CD、0Xab_cd および bigint 形式)に関する設定。 数字のグループ分け方や区切り記号の適用タイミングを制御します。
hexadecimal.groupLength
type: integer
数値区切り記号を挿入する際のグループごとの桁数。 たとえば、groupLength が 3 の場合、1234567 は 1_234_567 にフォーマットされます。
hexadecimal.minimumDigits
type: integer
グループ化が適用されるまでに必要な最小桁数。 この閾値より少ない桁数の値については、グループ化は行われません。
number
type: object
10進数(整数部、小数部、指数部)に関する設定。 数字のグループ分け方や区切り記号の適用タイミングを制御します。
number.groupLength
type: integer
数値区切り記号を挿入する際のグループごとの桁数。 たとえば、groupLength が 3 の場合、1234567 は 1_234_567 にフォーマットされます。
number.minimumDigits
type: integer
グループ化が適用されるまでに必要な最小桁数。 この閾値より少ない桁数の値については、グループ化は行われません。
octal
type: object
8進数リテラル(例:0o1234_5670 および bigint 形式)に関する設定。 数字のグループ分け方や区切り記号の適用タイミングを制御します。
octal.groupLength
type: integer
数値区切り記号を挿入する際のグループごとの桁数。 たとえば、groupLength が 3 の場合、1234567 は 1_234_567 にフォーマットされます。
octal.minimumDigits
type: integer
グループ化が適用されるまでに必要な最小桁数。 この閾値より少ない桁数の値については、グループ化は行われません。
onlyIfContainsSeparator
type: boolean
default: false
数値リテラルに既に区切り記号(_)が含まれている場合にのみ、このルールを適用します。
true に設定すると、区切り記号のない数値はそのままになります;false(デフォルト)の場合、区切り記号がまだ含まれていない数値に対しても、該当する数値に対してグループ化が強制されます。
使用方法
設定ファイルまたは CLI でこのルールを有効化するには、以下のように使用できます:
{
"rules": {
"unicorn/numeric-separators-style": "error"
}
}oxlint --deny unicorn/numeric-separators-style