no-useless-escape
Запрещает ненужные символы экранирования
Использование конфигурации recommended из @eslint/js в файле конфигурации включает это правило
Некоторые проблемы, о которых сообщает это правило, можно исправить вручную с помощью предложений редактора
Экранирование специальных символов в строках, шаблонных литералах и регулярных выражениях не оказывает никакого эффекта, как показано в следующем примере:
let foo = "hol\a"; // > foo = "hola"
let bar = `${foo}\!`; // > bar = "hola!"
let baz = /\:/ // same functionality with /:/
Подробности правила
Это правило обнаруживает символы экранирования, которые можно безопасно удалить без изменения поведения.
Примеры неправильного кода для этого правила:
/*eslint no-useless-escape: "error"*/
"'";
'"';
"#";
"e";
`"`;
`"${foo}"`;
`#{foo}`;
/!/;
/@/;
/[[]/;
/[a-z-]/;
Примеры правильного кода для этого правила:
/*eslint no-useless-escape: "error"*/
"\"";
'\'';
"\x12";
"\u00a9";
"\371";
"xs\u2111";
`\``;
`\${${foo}}`;
`$\{${foo}}`;
/\\/g;
/\t/g;
/\w\$\*\^\./;
/[[]/;
/[\]]/;
/[a-z-]/;
Параметры
У этого правила есть параметр-объект:
-
allowRegexCharacters— массив символов, для которых допускается ненужное экранирование в регулярных выражениях. Это полезно для таких символов, как-, поскольку экранирование помогает избежать случайного создания диапазонов символов. Например, в/[0\-]/экранирование технически не требуется, но помогает предотвратить превращение шаблона в диапазон, если позже будет добавлен другой символ (например,/[0\-9]/вместо/[0-9]/).
allowRegexCharacters
Примеры неправильного кода для параметра { "allowRegexCharacters": ["-"] }:
/*eslint no-useless-escape: ["error", { "allowRegexCharacters": ["-"] }]*/
/!/;
/@/;
/[a-z^]/;
Примеры правильного кода для параметра { "allowRegexCharacters": ["-"] }:
/*eslint no-useless-escape: ["error", { "allowRegexCharacters": ["-"] }]*/
/[0\-]/;
/[\-9]/;
/a\-b/;
Когда не следует использовать это правило
Если вы не хотите получать уведомления о ненужных символах экранирования, это правило можно отключить.
Версия
Это правило добавлено в ESLint v2.5.0.
Ресурсы
© OpenJS Foundation and other contributors
Licensed under the MIT License.
https://eslint.org/docs/latest/rules/no-useless-escape