一開始依照 Jest 官方文件 的寫法:
// 省略實際 function 實作跟 `expect.extend(...)`
declare module 'expect' {
interface Matchers<R> {
toBeCustomValid(/*...*/): R;
}
}
但還是出現 ... 'toBeCustomValid' does not exist on type 'JestMatchers<...
的錯誤。
後來參考 jest-extended 的寫法:
declare namespace jest {
interface Matchers<R> {
toBeCustomValid(/*...*/): R;
}
}
把 matcher function 加到 jest.Matchers
(而不是 expect.Matchers
)底下就搞定了。
註: Jest 版本是 29.6.4