no-duplicate-imports
Запрет дублирования импортов модулей
Использование одного import оператора на модуль сделает код более понятным, поскольку вы сможете увидеть всё, что импортируется из данного модуля, в одной строке.
В следующем примере module импорт в строке 1 повторяется в строке 3. Эти импорты можно объединить, чтобы список импортов стал более лаконичным.
import { merge } from 'module';
import something from 'another-module';
import { find } from 'module';
Подробное описание правила
Это правило требует, чтобы все импорты из одного модуля, которые могут быть объединены, находились в одном import операторе.
Пример неправильного кода для этого правила:
/*eslint no-duplicate-imports: "error"*/
import { merge } from 'module';
import something from 'another-module';
Пример правильного кода для этого правила:
/*eslint no-duplicate-imports: "error"*/
import { merge, find } from 'module';
import something from 'another-module';
Пример правильного кода для этого правила:
/*eslint no-duplicate-imports: "error"*/
// not mergeable
import { merge } from 'module';
import * as something from 'module';
Параметры
Это правило принимает один необязательный аргумент — объект с одним ключом, includeExports являющимся boolean. По умолчанию он равен false.
Если вы переэкспортируете из импортированного модуля, вы должны добавить импорты в import оператор и экспортировать их напрямую, а не использовать export ... from.
Пример неправильного кода для этого правила с опцией { "includeExports": true }:
/*eslint no-duplicate-imports: ["error", { "includeExports": true }]*/
import { merge } from 'module';
Пример правильного кода для этого правила с опцией { "includeExports": true }:
/*eslint no-duplicate-imports: ["error", { "includeExports": true }]*/
import { merge, find } from 'module';
export { find };
Пример правильного кода для этого правила с опцией { "includeExports": true }:
/*eslint no-duplicate-imports: ["error", { "includeExports": true }]*/
import { merge, find } from 'module';
// cannot be merged with the above import
export * as something from 'module';
// cannot be written differently
export * from 'module';
Версия
Это правило было добавлено в ESLint v2.5.0.
Ресурсы
© OpenJS Foundation and other contributors
Licensed under the MIT License.
https://eslint.org/docs/latest/rules/no-duplicate-imports