no-console
Запрет использования console
Некоторые проблемы, о которых сообщает это правило, можно исправить вручную с помощью предложений редактора
В JavaScript, предназначенном для выполнения в браузере, считается хорошей практикой избегать использования методов объекта console. Такие сообщения считаются предназначенными для отладки и потому не подходят для включения в клиентский код. В целом вызовы с использованием console следует удалять перед отправкой кода в production.
console.log("Made it here.");
console.error("That shouldn't have happened.");
Подробное описание правила
Это правило запрещает вызовы методов объекта console и присваивания им.
Примеры неправильного кода для этого правила:
/* eslint no-console: "error" */
("Log a debug level message.");
("Log a warn level message.");
("Log an error level message.");
= foo();
Примеры правильного кода для этого правила:
/* eslint no-console: "error" */
// custom console
Console.log("Hello world!");
Параметры
Это правило принимает объект параметров для исключений:
-
"allow"содержит массив строк с разрешёнными методами объектаconsole
Примеры дополнительного правильного кода для этого правила с примером параметра { "allow": ["warn", "error"] }:
/* eslint no-console: ["error", { allow: ["warn", "error"] }] */
console.warn("Log a warn level message.");
console.error("Log an error level message.");
Когда не следует использовать это правило
Однако в Node.js объект console используется для вывода информации пользователю, а не только для отладки. Если вы разрабатываете приложение для Node.js, скорее всего, вам не нужно включать это правило.
Ещё один случай, когда это правило может быть не нужно, — если вы хотите запретить вызовы console, но не перезапись console. Например:
/* eslint no-console: ["error", { allow: ["warn"] }] */
console.error = function (message) {
throw new Error(message);
};
При использовании правила no-console в приведённом выше примере ESLint сообщит об ошибке. Для этого примера можно отключить правило:
// eslint-disable-next-line no-console
console.error = function (message) {
throw new Error(message);
};
// or
console.error = function (message) { // eslint-disable-line no-console
throw new Error(message);
};
Однако вы можете не захотеть вручную добавлять eslint-disable-next-line или eslint-disable-line. Можно добиться того, чтобы ошибки выдавались только для вызовов console, с помощью правила no-restricted-syntax:
{
"rules": {
"no-console": "off",
"no-restricted-syntax": [
"error",
{
"selector": "CallExpression[callee.object.name='console'][callee.property.name!=/^(log|warn|error|info|trace)$/]",
"message": "Unexpected property on console object was called"
}
]
}
}
Связанные правила
Версия
Это правило появилось в ESLint v0.0.2.
Ресурсы
© OpenJS Foundation and other contributors
Licensed under the MIT License.
https://eslint.org/docs/latest/rules/no-console