You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

node环境下ts-jest使用jest.spyOn出现TS2769重载不匹配问题求助

Jest + ts-jest 单元测试TS2769错误解决方案

按以下优先级排查解决:

  • 修正拼写错误:示例代码中存在多处拼写不匹配问题,业务代码consumer.ts中将dependency误写为dependecy,测试代码中将jest.spyOn的第二个参数误写为depenedncy,拼写错误会导致TypeScript无法在导入对象上找到对应方法,修正所有拼写不一致的问题即可。
  • 对齐导入路径与导出结构:你示例中consumer.ts的注释标注从index.ts导入dependency,如果你的项目中impl是一个文件夹,内部包含impl.ts和作为桶导出的index.ts,导入路径../impl会优先匹配同级的impl.ts文件,而非impl目录下的index.ts。可将导入路径补全为../impl/index,或者调整文件命名避免文件与目录重名导致的解析优先级冲突。
  • 手动补充类型断言:如果确认拼写、路径均无问题,可通过类型断言修正ts-jest的类型推断误差,写法参考:
// 精准断言避免类型丢失
const mockDependency = jest.spyOn(dependencies as Record<'dependency', typeof dependencies.dependency>, 'dependency');
// 临时绕开类型检查(不推荐,仅用于快速验证)
const mockDependency = jest.spyOn(dependencies as any, 'dependency');
  • 校验配置匹配性:确认tsconfig.json中开启了esModuleInterop: true,同时jest.config.js中ts-jest的useESM配置与项目的模块类型匹配:CommonJS模块项目关闭该配置,ESM模块项目开启该配置。

内容的提问来源于stack exchange,提问作者bjenner

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.17 13:06:01