prefer-numeric-literals
Запрещает parseInt() и Number.parseInt() в пользу двоичных, восьмеричных и шестнадцатеричных литералов
Некоторые проблемы, о которых сообщает это правило, можно автоматически исправить с помощью параметра --fix командной строки
Это правило в настоящее время заморожено, и запросы на добавление функций не принимаются.
Функции parseInt() и Number.parseInt() можно использовать для преобразования двоичных, восьмеричных и шестнадцатеричных строк в целые числа. Поскольку двоичные, восьмеричные и шестнадцатеричные литералы поддерживаются в ES6, это правило поощряет использование таких числовых литералов вместо parseInt() или Number.parseInt().
0b111110111 === 503;
0o767 === 503;
Подробное описание правила
Это правило запрещает вызовы parseInt() или Number.parseInt() с двумя аргументами: строкой и параметром основания системы счисления, равным 2 (двоичная), 8 (восьмеричная) или 16 (шестнадцатеричная).
Примеры неправильного кода для этого правила:
/*eslint prefer-numeric-literals: "error"*/
=== 503;
=== 503;
=== 503;
=== 503;
=== 503;
=== 503;
=== 503;
Примеры правильного кода для этого правила:
/*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