运行npm/eslint时TS版本不被@typescript-eslint支持如何修复
问题根因
你使用的@typescript-eslint/eslint-plugin、@typescript-eslint/parser 4.29.3版本,内置的@typescript-eslint/typescript-estree组件官方兼容的TypeScript版本范围是>=3.3.1 <4.4.0,但你项目中安装的TypeScript版本为4.4.2,超出兼容范围,因此触发版本警告。
修复方案
任选以下一种方案操作即可解决:
- 升级@typescript-eslint相关依赖到适配TS4.4的版本
4.31.0及以上的4.x版本、所有5.x版本的@typescript-eslint相关包都已经完成TS4.4适配。考虑到你项目中react-scripts版本为3.4.4,优先选择4.31.x版本可以避免出现跨大版本的兼容冲突:
升级完成后删除项目下的npm install --save-dev @typescript-eslint/eslint-plugin@^4.31.0 @typescript-eslint/parser@^4.31.0node_modules文件夹、对应包管理器的锁文件(npm对应package-lock.json、yarn对应yarn.lock、pnpm对应pnpm-lock.yaml),重新执行npm install安装依赖后再运行命令,警告就会消失。 - 降级TypeScript到兼容版本
如果暂时不想升级ESLint相关依赖,可以把TypeScript版本锁定到4.3.x的最高补丁版本,修改package.json中对应字段:
修改完成后同样删除旧依赖和锁文件,重新执行"typescript": "~4.3.5",npm install即可。 - 临时忽略警告(不推荐)
如果实际运行npm run dev、npx eslint .时除了警告没有其他功能异常、代码校验结果也符合预期,可以通过添加环境变量跳过版本检查,仅屏蔽警告输出:
这种方式不会解决实际的版本兼容问题,如果后续出现ESLint解析TS代码报错的情况,还是需要用前两种方案处理。TYPESCRIPT_ESLINT_SKIP_TS_VERSION_CHECK=1 npx eslint .
内容的提问来源于stack exchange,提问作者Barbie Doll
相关产品推荐
相关产品推荐

