Spec-Zone.ru › ESLint

no-useless-escape

Запрещает ненужные символы экранирования

✅ Рекомендуется

Использование конфигурации recommended из @eslint/js в файле конфигурации включает это правило

💡 есть предложения

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

Экранирование специальных символов в строках, шаблонных литералах и регулярных выражениях не оказывает никакого эффекта, как показано в следующем примере:

let foo = "hol\a"; // > foo = "hola"
let bar = `${foo}\!`; // > bar = "hola!"
let baz = /\:/ // same functionality with /:/

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

Это правило обнаруживает символы экранирования, которые можно безопасно удалить без изменения поведения.

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

Открыть в Playground
/*eslint no-useless-escape: "error"*/

"\'";
'\"';
"\#";
"\e";
`\"`;
`\"${foo}\"`;
`\#{foo}`;
/\!/;
/\@/;
/[\[]/;
/[a-z\-]/;

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

Открыть в Playground
/*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": ["-"] }:

Открыть в Playground
/*eslint no-useless-escape: ["error", { "allowRegexCharacters": ["-"] }]*/

/\!/;
/\@/;
/[a-z\^]/;

Примеры правильного кода для параметра { "allowRegexCharacters": ["-"] }:

Открыть в Playground
/*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

Spec-Zone.ru

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