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

如何扩展jest expect包expectExport的TypeScript命名空间添加自定义匹配器

问题原因

你的写法存在两个核心错误导致类型合并不生效:

  1. 你声明的extendExport命名空间和expect包导出的expectExport没有任何关联,TS找不到合并目标
  2. 没有将类型声明挂载到expect模块上,属于独立的全局命名空间声明,自然不会对expect包的类型产生影响

解决方案

在你项目的.d.ts声明文件(比如根目录下的expect.d.ts)中写入以下内容即可:

// 声明扩展expect包的类型
declare module 'expect' {
  interface Matchers<R> {
    // 在这里添加你自定义的匹配器类型
    toWorkProperly(a: number): R;
  }
}

export {};

注意事项

  • 确保你的tsconfig.json的include配置包含了这个声明文件,示例配置:
    {
      "include": ["src/**/*", "*.d.ts"]
    }
    
  • 如果修改后类型没有立即生效,重启编辑器的TS服务即可(VS Code可以按Ctrl+Shift+P执行TypeScript: Restart TS Server命令)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 19:54:00