Spec-Zone.ru › ESLint

prefer-numeric-literals

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

🔧 Можно исправить

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

❄️ Заморожено

Это правило в настоящее время заморожено, и запросы на добавление функций не принимаются.

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

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

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

Это правило запрещает вызовы parseInt() или Number.parseInt() с двумя аргументами: строкой и параметром основания системы счисления, равным 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