import-js/eslint-plugin-import

`import/no-duplicates` and const enum-s

Open

#3,149 建立於 2025年1月23日

在 GitHub 查看
 (1 留言) (0 反應) (0 負責人)JavaScript (4,946 star) (1,540 fork)batch import
bughelp wantedtypescript

描述

I'm using using eslint-plugin-import v2.31.0, eslint v9.18.0 and typescript v5.5.4 configuration for the plugin: import/no-duplicates is ['error', { 'prefer-inline': true }].

I have an npm package that has both type definitions (type or interfaces) and const enum-s, for example:

export const enum SomeEnum {
  Foo = 'foo',
  Bar = 'bar',
}

export interface Something {
  baz:string
}

When I am trying to import both, an interface and enum - eslint complains that it must be in one line, like this:

import { type Something, SomeEnum } from 'some-package';

but typescript can't compile such typescript file, fails with error: "Error: Module not found: Error: Can't resolve 'some-package'" there is an issue in typescript repo about this problem, but it is very old and it seems it will not be resolved in near future: https://github.com/microsoft/TypeScript/issues/40344

for now I will have to have such imports in 2 lines:

import type { Something } from 'some-package';
import { SomeEnum } from 'some-package';

and I will have to set 'prefer-inline' to false, but would be cool to be able to have those 2 lines only for the const enum-s and not for all other imports.

貢獻者指南