Как использовать jest-dom без Jest

У меня вопрос о расширении интерфейсов Typescript. Вот моя ситуация:

Я использую expect в моих тестах без Jest (я установил отдельно и работает).

Теперь я хочу использовать jest-dom добавить expectсопоставители для DOM. (они очень полезны и облегчат написание моих тестов).

Я сделал следующее, чтобы продлить ожидание

import expect from 'expect'
import * as matchers from '@testing-library/jest-dom/matchers'

expect.extend(matchers)

Это работает и добавляет сопоставители, но Typescript о них не знает.

Я установил @types/testing-library/jest-dom Но это не решило проблему.

Заглядывая внутрь @types/testing-library__jest-dom Я вижу, что это расширяет типы jest а не отдельный expect.

Я пробовал добавить expect.d.ts со следующим содержанием:

import 'expect'

declare module 'expect' {
  export interface Matchers<R> {
    toBeInTheDOM(container?: HTMLElement | SVGElement): R
    // ... other methods
  }
}

Но Typescript все еще жалуется.

Есть идеи?

1 ответ

Я нашел решение, следующие работы

import 'expect/build/types'

declare module 'expect/build/types' {
  export interface Matchers<R> {
    // matchers methods here
  }
}
Другие вопросы по тегам