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];구성
이 규칙은 다음 속성을 가진 구성 객체를 수용합니다.
이진수
type: object
이진 리터럴(예: 0b1010_0001 및 빅인트 변형)에 대한 구성입니다.
숫자가 어떻게 그룹화되고, 언제 구분자가 적용되는지를 제어합니다.
binary.groupLength
type: integer
숫자 구분자를 삽입할 때 그룹당 숫자의 개수입니다.
예를 들어, groupLength 값이 3이면 1234567은 1_234_567처럼 형식화됩니다.
binary.minimumDigits
type: integer
그룹화가 적용되기 전에 요구되는 최소 숫자 개수입니다.
이 임계값보다 적은 숫자를 가진 값은 그룹화되지 않습니다.
16진수
type: object
16진수 리터럴(예: 0xAB_CD, 0Xab_cd, 및 빅인트 변형)에 대한 구성입니다.
숫자가 어떻게 그룹화되고, 언제 구분자가 적용되는지를 제어합니다.
hexadecimal.groupLength
type: integer
숫자 구분자를 삽입할 때 그룹당 숫자의 개수입니다.
예를 들어, groupLength 값이 3이면 1234567은 1_234_567처럼 형식화됩니다.
hexadecimal.minimumDigits
type: integer
그룹화가 적용되기 전에 요구되는 최소 숫자 개수입니다.
이 임계값보다 적은 숫자를 가진 값은 그룹화되지 않습니다.
십진수
type: object
십진수(정수, 소수 부분, 지수 포함)에 대한 구성입니다.
숫자가 어떻게 그룹화되고, 언제 구분자가 적용되는지를 제어합니다.
number.groupLength
type: integer
숫자 구분자를 삽입할 때 그룹당 숫자의 개수입니다.
예를 들어, groupLength 값이 3이면 1234567은 1_234_567처럼 형식화됩니다.
number.minimumDigits
type: integer
그룹화가 적용되기 전에 요구되는 최소 숫자 개수입니다.
이 임계값보다 적은 숫자를 가진 값은 그룹화되지 않습니다.
8진수
type: object
8진수 리터럴(예: 0o1234_5670 및 빅인트 변형)에 대한 구성입니다.
숫자가 어떻게 그룹화되고, 언제 구분자가 적용되는지를 제어합니다.
octal.groupLength
type: integer
숫자 구분자를 삽입할 때 그룹당 숫자의 개수입니다.
예를 들어, groupLength 값이 3이면 1234567은 1_234_567처럼 형식화됩니다.
octal.minimumDigits
type: integer
그룹화가 적용되기 전에 요구되는 최소 숫자 개수입니다.
이 임계값보다 적은 숫자를 가진 값은 그룹화되지 않습니다.
onlyIfContainsSeparator
type: boolean
기본값: false
숫자 리터럴이 이미 구분자(_)를 포함하고 있을 때만 규칙을 적용합니다.
true로 설정하면, 구분자가 없는 숫자는 원래 상태로 유지되며, false로 설정된 경우(기본값), 아직 구분자가 없더라도 해당 숫자에 대해 그룹화를 강제합니다.
사용 방법
구성 파일 또는 명령줄 인터페이스에서 이 규칙을 활성화하려면 다음을 사용할 수 있습니다:
{
"rules": {
"unicorn/numeric-separators-style": "error"
}
}oxlint --deny unicorn/numeric-separators-style