版本

no-duplicate-imports

禁止重复模块导入

每个模块使用单个import语句可以让代码更清晰,因为您可以在一行上看到从该模块导入的所有内容。

在以下示例中,第 1 行上的module导入在第 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';
import { find } from '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';

export { find } 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 中引入的。

资源

更改语言