no-useless-rename
Запрещает переименование импорта, экспорта и деструктурирующих присваиваний в то же имя
Некоторые проблемы, выявленные этой правилами, автоматически исправляются опцией --fix командной строки
ES2015 позволяет переименовывать ссылки в операторах импорта и экспорта, а также в деструктурирующих присваиваниях. Это предоставляет программистам компактный синтаксис для выполнения этих операций с переименованием этих ссылок:
import { foo as bar } from "baz";
export { foo as bar };
let { foo: bar } = baz;
С помощью этого синтаксиса можно переименовать ссылку на то же имя. Это совершенно избыточная операция, так как это то же самое, что и не переименовывать вообще. Например, это:
import { foo as foo } from "bar";
export { foo as foo };
let { foo: foo } = bar;
эквивалентно:
import { foo } from "bar";
export { foo };
let { foo } = bar;
Подробное описание правила
Это правило запрещает переименование импорта, экспорта и деструктурирующих присваиваний в то же имя.
Параметры
Это правило позволяет получить более точный контроль с помощью следующих параметров:
-
ignoreImport: Если установлено вtrue, это правило не проверяет импорты -
ignoreExport: Если установлено вtrue, это правило не проверяет экспорты -
ignoreDestructuring: Если установлено вtrue, это правило не проверяет деструктурирующие присваивания
По умолчанию все параметры установлены в false:
"no-useless-rename": ["error", {
"ignoreDestructuring": false,
"ignoreImport": false,
"ignoreExport": false
}]
Примеры неправильного кода для этого правила по умолчанию:
/*eslint no-useless-rename: "error"*/
import { } from "bar";
import { } from "bar";
export { };
export { };
export { } from "bar";
export { } from "bar";
let { } = bar;
let { } = bar;
function foo({ }) {}
({ }) => {}
Примеры правильного кода для этого правила по умолчанию:
/*eslint no-useless-rename: "error"*/
import * as foo1 from "foo";
import { foo2 } from "bar";
import { foo as bar1 } from "baz";
import { "foo" as bar2 } from "baz";
export { foo };
export { foo as bar1 };
export { foo as "bar2" };
export { foo as bar3 } from "foo";
export { "foo" as "bar4" } from "foo";
let { foo } = bar;
let { foo: bar } = baz;
let { [qux]: qux } = bar;
function foo3({ bar }) {}
function foo4({ bar: baz }) {}
({ foo }) => {}
({ foo: bar }) => {}
Примеры правильного кода для этого правила с { ignoreImport: true }:
/*eslint no-useless-rename: ["error", { ignoreImport: true }]*/
import { foo as foo } from "bar";
Примеры правильного кода для этого правила с { ignoreExport: true }:
/*eslint no-useless-rename: ["error", { ignoreExport: true }]*/
const foo = 1;
export { foo as foo };
export { bar as bar } from "bar";
Примеры правильного кода для этого правила с { ignoreDestructuring: true }:
/*eslint no-useless-rename: ["error", { ignoreDestructuring: true }]*/
let { foo: foo } = bar;
function baz({ bar: bar }) {}
({ foo: foo }) => {}
Когда не стоит использовать
Вы можете безопасно отключить это правило, если вам не важны избыточно переименованные импорт, экспорт и деструктурирующие присваивания.
Совместимость
Связанные правила
Версия
Это правило было добавлено в ESLint v2.11.0.
Ресурсы
© OpenJS Foundation and other contributors
Licensed under the MIT License.
https://eslint.org/docs/latest/rules/no-useless-rename