Spec-Zone.ru › ESLint

Использование числовых литералов

Запретить parseInt() и Number.parseInt() в пользу двоичных, восьмеричных и шестнадцатеричных литералов

🔧 Исправимые

Некоторые проблемы, выявленные этим правилом, могут быть автоматически исправлены с помощью опции --fix командной строки

Функции parseInt() и Number.parseInt() могут использоваться для преобразования двоичных, восьмеричных и шестнадцатеричных строк в целые числа. Поскольку двоичные, восьмеричные и шестнадцатеричные литералы поддерживаются в ES6, это правило рекомендует использовать эти числовые литералы вместо parseInt() или Number.parseInt().

0b111110111 === 503;
0o767 === 503;

Подробное описание правила

Это правило запрещает вызовы parseInt() или Number.parseInt(), если они вызываются с двумя аргументами: строкой и опцией radix со значением 2 (двоичная), 8 (восьмеричная) или 16 (шестнадцатеричная).

Примеры неправильного кода для этого правила:

Открыть в Playground
/*eslint prefer-numeric-literals: "error"*/

parseInt("111110111", 2) === 503;
parseInt(`111110111`, 2) === 503;
parseInt("767", 8) === 503;
parseInt("1F7", 16) === 503;
Number.parseInt("111110111", 2) === 503;
Number.parseInt("767", 8) === 503;
Number.parseInt("1F7", 16) === 503;

Примеры правильного кода для этого правила:

Открыть в Playground
/*eslint prefer-numeric-literals: "error"*/

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);

Когда не следует использовать

Если вы хотите разрешить использование parseInt() или Number.parseInt() для двоичных, восьмеричных или шестнадцатеричных целых чисел, или если вы не используете ES6 (потому что двоичные и восьмеричные литералы не поддерживаются в ES5 и ниже), вы можете отключить это правило.

Совместимость

  • JSCS: requireNumericLiterals

Версия

Это правило было введено в ESLint v3.5.0.

Ресурсы

  • Исходный код правила
  • Исходный код тестов

© OpenJS Foundation and other contributors
Licensed under the MIT License.
https://eslint.org/docs/latest/rules/prefer-numeric-literals

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API