import-js/eslint-plugin-import

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

Open

#3149 aperta il 23 gen 2025

Vedi su GitHub
 (1 commento) (0 reazioni) (0 assegnatari)JavaScript (1540 fork)batch import
bughelp wantedtypescript

Metriche repository

Star
 (4946 star)
Metriche merge PR
 (Merge medio 138g 22h) (3 PR mergiate in 30 g)

Descrizione

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.

Guida contributor