You can now use parser options project service to resolve this issue
Typescript Parser - Project Service
This is intended to produce type information for config files such as eslint.config.js
My sample eslint config
module.exports = (async function config() { const { fixupPluginRules } = await import('@eslint/compat'); const { default: love } = await import('eslint-config-love'); const { default: pluginJsDoc } = await import('eslint-plugin-jsdoc'); const { default: globals } = await import('globals'); const { default: pluginJs } = await import('@eslint/js'); const { default: pluginReact } = await import('eslint-plugin-react'); const { default: reactHooksPlugin } = await import( 'eslint-plugin-react-hooks' ); const { default: tseslint } = await import('typescript-eslint'); // const { default: expo } = await import('eslint-config-expo'); const { default: eslintPluginPrettierRecommended } = await import( 'eslint-plugin-prettier/recommended' ); return [ pluginJs.configs.recommended, ...tseslint.configs.recommended, pluginReact.configs.flat.recommended, pluginJsDoc.configs['flat/recommended-typescript-error'], eslintPluginPrettierRecommended, { ...love, files: ['**/*.{js,jsx,ts,tsx}'], plugins: { 'react-hooks': fixupPluginRules(reactHooksPlugin), }, rules: { ...reactHooksPlugin.configs.recommended.rules, // TypeScript '@typescript-eslint/explicit-function-return-type': 'off', }, }, { languageOptions: { globals: { ...globals.jest, ...globals.commonjs, ...globals.es2021, __DEV__: 'readonly', ErrorUtils: false, FormData: false, XMLHttpRequest: false, alert: false, cancelAnimationFrame: false, cancelIdleCallback: false, clearImmediate: false, fetch: false, navigator: false, process: false, requestAnimationFrame: false, requestIdleCallback: false, setImmediate: false, window: false, 'shared-node-browser': true, }, parserOptions: { // https://typescript-eslint.io/packages/parser/#projectservice projectService: { allowDefaultProject: ['*.js'], }, }, }, settings: { react: { version: 'detect', }, }, }, ]; })();
The code below makes sure your config files are parsed appropriately without the need to include any files in your tsconfig
parserOptions: { // https://typescript-eslint.io/packages/parser/#projectservice projectService: { allowDefaultProject: ['*.js'], }, },