eslint-plugin-import-x icon indicating copy to clipboard operation
eslint-plugin-import-x copied to clipboard

`import-x/no-default-export` does not work in typescript

Open M-51 opened this issue 1 year ago • 2 comments

Lets say we have simple (flat) config file eslint.config.js with only one rule 'import-x/no-default-export': 'error',

import eslintPluginImportX from 'eslint-plugin-import-x'
import tsParser from '@typescript-eslint/parser'

export default [
    {
        files: ['**/*.js'],
        languageOptions: {
            ecmaVersion: 'latest',
            sourceType: 'module',
        },
        plugins: {
            'import-x': eslintPluginImportX,
        },
        ignores: ['eslint.config.js'],
        rules: {
            'import-x/no-default-export': 'error',
        },
    },
    {
        files: ['**/*.ts'],
        languageOptions: {
            parser: tsParser,
            ecmaVersion: 'latest',
            sourceType: 'module',
        },
        plugins: {
            'import-x': eslintPluginImportX,
        },
        rules: {
            'import-x/no-default-export': 'error',
        },
        settings: {
            'import-x/resolver': {
                typescript: true,
            },
        },
    },
];

and two files with identical content:

foo.js foo.ts
function foo() {
return 'foo';
}

export default foo;
function foo() {
return 'foo';
}

export default foo;

eslint shows correctly 'import-x/no-default-export': 'error' in foo.js file js

while in foo.ts it shows nothing: ts

Here is a repo with replicated problem https://github.com/M-51/default-export-bug


Worth mentioning, other rules, for example opposite rule - import-x/prefer-default-export works correctly (when added) in the same environment in both JavaScript and Typescript. named So it seems, it is only problem with import-x/no-default-export'

M-51 avatar Aug 31 '24 23:08 M-51