import/no-duplicates Style
它的作用
如果同一个已解析路径在同一模块中被导入多次,则会报告问题。 这有助于避免不必要的重复导入,并保持代码整洁。
为什么这不好?
多次导入同一个模块会导致冗余和 不必要的复杂性。它也会影响可维护性,因为这可能 让开发者感到困惑,并导致在整个代码中对导入的使用不一致。
示例
以下是此规则的错误代码示例:
javascript
import { foo } from "./module";
import { bar } from "./module";
import a from "./module";
import { b } from "./module";以下是此规则的正确代码示例:
typescript
import { foo, bar } from "./module";
import * as a from "foo"; // 命名空间导入应使用单独的语句
import { b } from "foo";
import { c } from "foo"; // 分离类型导入,除非
import type { d } from "foo"; // `prefer-inline` 为 true配置
此规则接受一个包含以下属性的配置对象:
considerQueryString
type: boolean
default: false
当设置为 true 时,规则在判断导入是否重复时会考虑导入路径中的查询字符串部分。 这在使用 webpack 等通过查询字符串来配置模块加载方式的加载器时非常有用。
将此选项设置为 true 时的正确代码示例:
javascript
import x from "./bar?optionX";
import y from "./bar?optionY";preferInline
type: boolean
default: false
当设置为 true 时,对于 TypeScript 代码,优先使用内联类型导入,而不是单独的类型导入 语句。
将此选项设置为 true 时的正确代码示例:
typescript
import { Foo, type Bar } from "./module";如何使用
To enable this rule using the config file or in the CLI, you can use:
json
{
"plugins": ["import"],
"rules": {
"import/no-duplicates": "error"
}
}ts
import { defineConfig } from "oxlint";
export default defineConfig({
plugins: ["import"],
rules: {
"import/no-duplicates": "error",
},
});bash
oxlint --deny import/no-duplicates --import-plugin版本
此规则在 v0.2.11 中添加。
