扩展Jest Matchers的VS Code TypeScript问题

xggvc2p6  于 11个月前  发布在  Jest
关注(0)|答案(1)|浏览(118)

我已经创建了自定义Jest匹配器来扩展expect以用于AxiosResponse对象。尽管遵循了扩展Jest匹配器类型的标准方法,但TypeScript无法识别我的自定义匹配器。
VSCode中的TypeScript错误是:

Property 'status' does not exist on type 'JestMatchers<AxiosResponse<any, any>>'.ts(2339)

字符串
我已经尝试了几种方法来解决这个问题,但到目前为止,没有一个有效。
1.创建了一个自定义类型声明文件jest-custom-matchers.d.ts,其中包含以下内容:

import 'jest';

declare global {
  namespace jest {
    interface Matchers<R> {
      status(expectedStatus: number): R;
    }
  }
}


1.已确保tslog.json已正确配置为包含types目录:

{
  "compilerOptions": {
    "typeRoots": ["./node_modules/@types", "./types"],
  },
  "include": ["src/**/*", "types/**/*"]
}


1.在VS Code中重新启动TypeScript服务器,并检查是否有任何冲突的类型定义。
1.已根据VSCode does not recognize jest custom matcher将. d. ts文件移动到根目录
测试使用命令行成功运行,但VS Code无法识别自定义匹配器。


的数据

holgip5t

holgip5t1#

解决了。我不得不在tsconfig.json中的include中添加specs目录,这就成功了!

"include": [
    "src/**/*",
    "specs/**/*",
    "types/custom-matcher.d.ts"
  ],

字符串

相关问题