import/no-duplicates 스타일
작동 방식
같은 모듈 내에서 해석된 경로가 한 번 이상 가져와졌을 경우를 보고합니다.
이 규칙은 불필요한 중복 가져오기를 방지하고 코드를 깔끔하게 유지하는 데 도움을 줍니다.
왜 좋지 않은가?
같은 모듈을 여러 번 가져오는 것은 중복과 불필요한 복잡성을 초래할 수 있으며,
유지보수성에도 영향을 미칩니다. 개발자들이 혼란을 느끼게 하고, 코드 전체에서 가져오기 사용 방식이 일관되지 않게 되는 원인이 됩니다.
예시
이 규칙에 부적절한 코드 예시:
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"; // 타입 가져오기에 대해 별도 문장 사용 (단, `prefer-inline`가 참인 경우 제외)
import type { d } from "foo"; // `prefer-inline`가 참인 경우구성 옵션
이 규칙은 다음 속성을 가진 구성 객체를 수용합니다.
considerQueryString
type: boolean
기본값: false
true로 설정하면, 가져오기 경로의 쿼리 문자열 부분도 중복 여부 판단 시 고려됩니다.
webpack과 같은 로더가 모듈을 어떻게 로드할지를 구성하는 데 쿼리 문자열을 사용할 때 유용합니다.
이 옵션이 true로 설정된 경우의 적절한 코드 예시:
javascript
import x from "./bar?optionX";
import y from "./bar?optionY";preferInline
type: boolean
기본값: false
true로 설정하면, TypeScript 코드에서 별도의 타입 가져오기 문장보다 인라인 타입 가져오기를 선호합니다.
이 옵션이 true로 설정된 경우의 적절한 코드 예시:
typescript
import { Foo, type Bar } from "./module";사용 방법
이 규칙을 구성 파일 또는 명령줄 인터페이스에서 활성화하려면 다음을 사용할 수 있습니다:
json
{
"plugins": ["import"],
"rules": {
"import/no-duplicates": "error"
}
}bash
oxlint --deny import/no-duplicates --import-plugin