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';
此规则的正确代码示例
在游乐场中打开
/*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 中引入的。