Skip to content
You are currently reading docs for v1.x. Go to the latest docs if you are using newer version.

useNumericLiterals

Diagnostic Category: lint/style/useNumericLiterals

Since: v1.0.0

Sources:

Disallow parseInt() and Number.parseInt() in favor of binary, octal, and hexadecimal literals

JavaScript provides literal forms for binary, octal, and hexadecimal numbers. For example: 0b11, 0o77, and 0xff. Using the literal forms enable static code analysis and avoid unnecessary computations.

parseInt("111110111", 2);
code-block.js:1:1 lint/style/useNumericLiterals  FIXABLE  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

✖ This call to parseInt() can be replaced by a binary literal.

> 1 │ parseInt(“111110111”, 2);
│ ^^^^^^^^^^^^^^^^^^^^^^^^
2 │

ℹ Using a literal avoids unnecessary computations.

ℹ Unsafe fix: Use the computed binary literal instead.

1 │ - parseInt(“111110111”,·2);
1 │ + 0b111110111;
2 2 │

Number.parseInt("767", 8);
code-block.js:1:1 lint/style/useNumericLiterals  FIXABLE  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

✖ This call to Number.parseInt() can be replaced by an octal literal.

> 1 │ Number.parseInt(“767”, 8);
│ ^^^^^^^^^^^^^^^^^^^^^^^^^
2 │

ℹ Using a literal avoids unnecessary computations.

ℹ Unsafe fix: Use the computed octal literal instead.

1 │ - Number.parseInt(“767”,·8);
1 │ + 0o767;
2 2 │

Number.parseInt("-1f7", 16);
code-block.js:1:1 lint/style/useNumericLiterals  FIXABLE  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

✖ This call to Number.parseInt() can be replaced by a hexadecimal literal.

> 1 │ Number.parseInt(“-1f7”, 16);
│ ^^^^^^^^^^^^^^^^^^^^^^^^^^^
2 │

ℹ Using a literal avoids unnecessary computations.

ℹ Unsafe fix: Use the computed hexadecimal literal instead.

1 │ - Number.parseInt(“-1f7”,·16);
1 │ + -0x1f7;
2 2 │

parseInt(1);
parseInt(1, 3);
Number.parseInt(1);
Number.parseInt(1, 3);
0b111110111 === 503;
0o767 === 503;
0x1F7 === 503;
a[parseInt](1,2);
parseInt(foo);
parseInt(foo, 2);
Number.parseInt(foo);
Number.parseInt(foo, 2);
biome.json
{
"linter": {
"rules": {
"style": {
"useNumericLiterals": "error"
}
}
}
}