TypeScript报TS1005错误:@reduxjs/toolkit类型文件缺=,升级TS仍无效
问题根因
你遇到的报错本质是当前运行的TypeScript版本不识别import type语法:你虽然在项目devDependencies里安装了TS 4.4.4,但使用的react-scripts@3.4.3内置的TS版本最高仅支持到3.7.x,import type是TS 3.8才推出的语法,旧版TS解析时就会抛出TS1005 '=' expected错误。另外你@reduxjs/toolkit用的是^1.4.0版本,后续小版本迭代更新了类型定义,用到了更高版本TS的语法特性,也会触发这个报错。
可用解决方案
- 方案1:升级react-scripts到4.0及以上版本
这是最彻底的解决方案,react-scripts 4.0开始原生支持TS 4.x版本,会优先使用你项目安装的TS版本。把package.json里的react-scripts版本改为^4.0.3,删除node_modules、锁文件后重新安装依赖即可。 - 方案2:强制指定项目TypeScript版本
如果你不想升级react-scripts避免影响现有项目逻辑,可以通过包管理器的版本锁定功能强制全局使用你安装的TS 4.4.4:
如果你用yarn,在package.json根节点添加resolutions字段:
如果你用npm,在package.json根节点添加"resolutions": { "typescript": "^4.4.4" }overrides字段:
添加后重新执行依赖安装命令生效。"overrides": { "typescript": "^4.4.4" } - 方案3:降级锁定@reduxjs/toolkit版本
将package.json中@reduxjs/toolkit的版本从^1.4.0改为固定版本1.4.0,去掉版本前的^符号,避免拉取后续更新了类型定义的小版本,删除node_modules、锁文件后重新安装依赖即可。
验证步骤
- 完成上述任意方案操作后,删除项目根目录的
node_modules文件夹 - 删除项目根目录的
package-lock.json(npm用户)或yarn.lock(yarn用户)文件 - 重新执行
npm install或yarn install安装依赖 - 启动项目验证报错是否消失
内容的提问来源于stack exchange,提问作者abbott2964
相关产品推荐
相关产品推荐

