Skip to content

Files

Latest commit

 

History

History
106 lines (78 loc) · 2.48 KB

number-literal-case.md

File metadata and controls

106 lines (78 loc) · 2.48 KB

Enforce proper case for numeric literals

💼 This rule is enabled in the ✅ recommended config.

🔧 This rule is automatically fixable by the --fix CLI option.

Differentiating the casing of the identifier and value clearly separates them and makes your code more readable.

  • Lowercase radix identifier 0x 0o 0b for Number and BigInt.
  • Uppercase or lowercase hexadecimal value for Number and BigInt.
  • Lowercase e for exponential notation.

Fail

Hexadecimal

// ❌
const foo = 0XFF;
const foo = 0xff;
const foo = 0Xff;
const foo = 0Xffn;

// ✅
const foo = 0xFF;
const foo = 0xFFn;

Binary

// ❌
const foo = 0B10;
const foo = 0B10n;

// ✅
const foo = 0b10;
const foo = 0b10n;

Octal

// ❌
const foo = 0O76;
const foo = 0O76n;

// ✅
const foo = 0o76;
const foo = 0o76n;

Exponential notation

// ❌
const foo = 2E-5;
const foo = 2E+5;
const foo = 2E5;

// ✅
const foo = 2e-5;
const foo = 2e+5;
const foo = 2e5;

Options

Type: object

hexadecimalValue

Type: 'uppercase' | 'lowercase'
Default: 'uppercase'

Specify whether the hexadecimal number value (ABCDEF) should be in uppercase or lowercase.

Note: 0x is always lowercase and not controlled by this option to maintain readable code.

Example:

{
	'unicorn/number-literal-case': [
		'error',
		{
			hexadecimalValue: 'lowercase',
		}
	]
}
// ❌
const foo = 0XFF;
const foo = 0xFF;
const foo = 0XFFn;
const foo = 0xFFn;

// ✅
const foo = 0xff;
const foo = 0xffn;