import-js/eslint-plugin-import

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

Open

#3149 opened on Jan 23, 2025

View on GitHub
 (1 comment) (0 reactions) (0 assignees)JavaScript (4,946 stars) (1,540 forks)batch import
bughelp wantedtypescript

Description

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.

Contributor guide