ESLint忽略no-unused-vars规则设置,仍提示错误求助
ESLint未识别
no-unused-vars警告配置的原因及修复方案 问题根源
你的配置存在两个关键问题:
- 优先级覆盖:针对TypeScript文件的配置在
overrides区块中继承了plugin:@typescript-eslint/recommended预设,该预设已将@typescript-eslint/no-unused-vars设为错误级别。而全局rules区块的配置优先级低于overrides,所以你的警告设置被完全覆盖。 - 规则冲突:TypeScript文件下,原生
no-unused-vars规则与@typescript-eslint/no-unused-vars功能重叠,原生规则无法正确识别TS语法(如类型声明),反而会干扰预期规则的生效。
修复后的完整配置
将TypeScript专属的规则配置移至overrides内部的rules中,同时禁用TS文件下的原生规则:
{ "root": true, "env": { "node": false, "browser": true }, "globals": { "google": true, "process": true }, "parser": "@babel/eslint-parser", "parserOptions": { "sourceType": "module", "ecmaVersion": "latest", "requireConfigFile": false }, "overrides": [ { "files": ["*.{ts,tsx}"], "parser": "@typescript-eslint/parser", "plugins": ["@typescript-eslint"], "extends": ["plugin:@typescript-eslint/recommended"], "rules": { "@typescript-eslint/no-unused-vars": "warn", "no-unused-vars": "off" } } ], "rules": { "no-unused-vars": "warn" // 仅对非TS文件生效 } }
补充说明
- ESLint配置优先级顺序:
overrides内的规则 > 全局rules> 继承的预设规则 - 若仍有问题,可执行
eslint --debug your-file.ts查看规则加载详情,确认目标规则的实际生效级别 - 确保
eslint、@typescript-eslint/parser、@typescript-eslint/eslint-plugin三者版本兼容,版本不匹配也可能导致规则异常
内容的提问来源于stack exchange,提问作者user3146945
相关产品推荐
相关产品推荐

