TS2307报错:无法找到模块@jest/globals或其对应类型声明如何解决?
解决方案
这个报错属于TypeScript类型校验层面的问题,运行正常是因为项目中实际安装了@jest/globals依赖包,仅类型定义匹配/配置存在问题,可按以下步骤修复:
- 第一步:配置tsconfig.json类型引入
在项目根目录的tsconfig.json的compilerOptions节点下新增types配置,明确引入jest的类型定义:
{ "compilerOptions": { // 保留原有其他配置 "types": ["jest", "node"] } }
如果仅需要在测试文件中生效,也可以在每个测试文件首行添加三斜线引用指令:
/// <reference types="jest" />
- 第二步:清理类型缓存重启校验
如果配置完成后IDE仍提示报错,执行以下操作:
- 删除项目下的
node_modules/.cache文件夹 - 重启IDE的TypeScript语言服务(以VSCode为例,按下
Ctrl+Shift+P/Cmd+Shift+P,选择「TypeScript: Restart TS Server」即可)
- 可选优化建议
@jest/globals属于测试类依赖,无需放在生产依赖dependencies中,可以移动到devDependencies下统一管理。如果你不需要显式导入jest方法,也可以直接删除import { describe, expect, test } from '@jest/globals'这行代码,jest默认会把这些方法挂载到全局作用域,只要完成了第一步的tsconfig配置就不会触发全局变量未定义的报错。
内容的提问来源于stack exchange,提问作者Yana Trifonova
相关产品推荐
相关产品推荐

