技術浮浪貢

用 TypeScript 寫 Jest 的 matcher

一開始依照 Jest 官方文件 的寫法:

1// 省略實際 function 實作跟 `expect.extend(...)`
2
3declare module 'expect' {
4  interface Matchers<R> {
5    toBeCustomValid(/*...*/): R;
6  }
7}

但還是出現 ... 'toBeCustomValid' does not exist on type 'JestMatchers<... 的錯誤。

後來參考 jest-extended 的寫法:

1declare namespace jest {
2  interface Matchers<R> {
3    toBeCustomValid(/*...*/): R;
4  }
5}

把 matcher function 加到 jest.Matchers(而不是 expect.Matchers)底下就搞定了。


註: Jest 版本是 29.6.4

#TypeScript #Jest

« 上一篇

下一篇 »

相關文章