I have a question about extending Typescript interfaces. Here is my situation:
I am using expect in my tests without Jest (I installed it separately and it works).
Now I want to use jest-dom to add the expect matchers for DOM. (they are super helpful and will make my tests easier to write).
I did the following to extend expect
import expect from 'expect'
import * as matchers from '@testing-library/jest-dom/matchers'
expect.extend(matchers)
This works and adds the matchers, but Typescript doesn't know about them.
I installed @types/testing-library/jest-dom But it didn't solve the issue.
Looking inside @types/testing-library__jest-dom I see that it extends the types of jest and not the standalone expect.
I tried adding a expect.d.ts with the following content:
import 'expect'
declare module 'expect' {
  export interface Matchers<R> {
    toBeInTheDOM(container?: HTMLElement | SVGElement): R
    // ... other methods
  }
}
But Typescript is still complaining.
Any ideas?
                        
I found the solution, the following works