eslint/no-duplicate-imports 스타일
작동 방식
중복 모듈 가져오기를 허용하지 않습니다.
왜 문제가 되는가?
각 모듈당 하나의 가져오기 문을 사용하면, 해당 모듈에서 가져오는 모든 항목을 한 줄에 보여주므로 코드가 더 명확해집니다.
예시
이 규칙에 대한 잘못된 코드 예시:
다음 예시에서 1번 줄의 모듈 가져오기가 3번 줄에서도 반복됩니다. 이 둘을 결합하여 가져오기 목록을 더 간결하게 만들 수 있습니다.
import { merge } from "module";
import something from "another-module";
import { find } from "module";이 규칙에 대한 올바른 코드 예시:
import { merge, find } from "module";
import something from "another-module";구성
이 규칙은 다음 속성을 가진 구성 객체를 받습니다.
allowSeparateTypeImports
type: boolean
기본값: false
true로 설정되면, 값 식별자(인라인 타입 또는 타입 가져오기)만 포함된 가져오기는 값 식별자를 포함한 가져오기와 별개로 간주되며, 동일한 모듈에서 별도의 가져오기 문으로 가져올 수 있습니다.
allowSeparateTypeImports가 true로 설정되었을 때의 올바른 코드 예시:
import { foo } from "module";
import type { Bar } from "module";import { type Foo } from "module";
import type { Bar } from "module";includeExports
type: boolean
기본값: false
true로 설정되면 이 규칙은 또한 내보내기(export ... from 'module')를 확인하여, 같은 모듈에 대해 재내보내기와 일반적인 가져오기 문이 동시에 존재하는지 확인합니다. 이 경우 두 개의 문이 동일한 모듈에서 가져오기를 수행하므로 규칙 위반으로 간주됩니다.
includeExports가 true로 설정되었을 때의 잘못된 코드 예시:
import { merge } from "module";
export { find } from "module"; // 재내보내기이며, 가져오기이자 내보내기입니다.includeExports가 true로 설정되었을 때의 올바른 코드 예시:
다른 모듈에서 재내보내기를 할 경우, 가져오기를 import 문에 추가하고 직접 내보내야 하며, export ... from을 사용해서는 안 됩니다.
import { merge } from "lodash-es";
export { merge as lodashMerge };import { merge, find } from "module";
// 위의 가져오기와 병합할 수 없습니다
export * as something from "module";
// 다른 방식으로 작성할 수 없습니다
export * from "module";사용 방법
구성 파일이나 명령줄 인터페이스를 통해 이 규칙을 활성화하려면 다음을 사용하세요:
{
"rules": {
"no-duplicate-imports": "error"
}
}oxlint --deny no-duplicate-imports