小编Dyl*_*art的帖子

扩展全局公开的第三方模块

我正在尝试在Typescript中为Jest添加自定义匹配器.这工作正常,但我不能让Typescript识别扩展Matchers.

myMatcher.ts

export default function myMatcher (this: jest.MatcherUtils, received: any, expected: any): { pass: boolean; message (): string; } {
  const pass = received === expected;
  return {
    pass: pass,
    message: () => `expected ${pass ? '!' : '='}==`,
  }
}
Run Code Online (Sandbox Code Playgroud)

myMatcher.d.ts

declare namespace jest {
  interface Matchers {
    myMatcher (expected: any): boolean;
  }
}
Run Code Online (Sandbox Code Playgroud)

someTest.ts

import myMatcher from './myMatcher';

expect.extend({
  myMatcher,
})

it('should work', () => {
  expect('str').myMatcher('str');
})
Run Code Online (Sandbox Code Playgroud)

tsconfig.json

{
  "compilerOptions": {
    "outDir": "./dist/",
    "moduleResolution": "node", …
Run Code Online (Sandbox Code Playgroud)

typescript jestjs

22
推荐指数
2
解决办法
3367
查看次数

标签 统计

jestjs ×1

typescript ×1