如何用ESLint扁平配置正确配置TypeScript解析器与插件?
解决ESLint扁平配置中TypeScript解析与插件配置问题
你的配置存在几个关键错误,导致@typescript-eslint相关工具无法正常工作,以下是修正后的完整配置及问题说明:
修正后的完整配置
import typescriptEslintPlugin from '@typescript-eslint/eslint-plugin'; import typescriptEslintParser from '@typescript-eslint/parser'; export default [ { files: ["src/**/*.ts", "src/**/*.cts", "src/**/*.mts"], ignores: ["**/*.d.ts", "**/*.map.*"], plugins: { '@typescript-eslint': typescriptEslintPlugin, }, languageOptions: { ecmaVersion: "latest", sourceType: "module", parser: typescriptEslintParser, parserOptions: { project: "./tsconfig.json", tsconfigRootDir: process.cwd(), }, }, rules: { semi: "error", quotes: ["error", "single"], indent: [ "error", 2, { SwitchCase: 1, VariableDeclarator: "first", ImportDeclaration: "first", ArrayExpression: "first", ObjectExpression: "first", CallExpression: { arguments: "first" }, FunctionDeclaration: { body: 1, parameters: 4 }, FunctionExpression: { body: 1, parameters: 4 }, }, ], ...typescriptEslintPlugin.configs.recommended.rules, }, }, ];
关键修改点说明
- 单独导入解析器:@typescript-eslint/parser是独立包,必须单独导入,不能通过插件对象间接访问。
- 规范插件键名:plugins对象的键必须使用
@typescript-eslint,这样后续引用插件规则时才能正确匹配(比如@typescript-eslint/no-unused-vars这类规则)。 - 添加解析器配置:通过
parserOptions.project关联你的tsconfig文件,让ESLint能读取TypeScript的类型信息,这是多数TypeScript专属规则生效的必要条件。 - 启用插件推荐规则:通过扩展
typescriptEslintPlugin.configs.recommended.rules快速启用官方预设的TypeScript规则,也可根据需求替换为strict等其他预设。 - 简化忽略规则:原配置中忽略JS文件的操作多余,当前配置的
files已只匹配TS文件,只需保留类型声明和map文件的忽略规则即可。
最后确认已安装全部依赖:
npm install --save-dev eslint @typescript-eslint/eslint-plugin @typescript-eslint/parser typescript
内容的提问来源于stack exchange,提问作者JAYD3V
相关产品推荐
相关产品推荐

