如何使用 is-dom 没有 is
How to use jest-dom without Jest
我对扩展 Typescript 接口有疑问。
这是我的情况:
我在没有 Jest 的测试中使用 expect
(我单独安装了它并且它可以工作)。
现在我想使用 jest-dom
为 DOM 添加 expect
个匹配器。 (它们非常有用,会让我的测试更容易编写)。
我做了以下扩展 expect
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 仍在抱怨。
有什么想法吗?
我找到了解决方案,下面的作品
import 'expect/build/types'
declare module 'expect/build/types' {
export interface Matchers<R> {
// matchers methods here
}
}
我对扩展 Typescript 接口有疑问。 这是我的情况:
我在没有 Jest 的测试中使用 expect
(我单独安装了它并且它可以工作)。
现在我想使用 jest-dom
为 DOM 添加 expect
个匹配器。 (它们非常有用,会让我的测试更容易编写)。
我做了以下扩展 expect
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 仍在抱怨。
有什么想法吗?
我找到了解决方案,下面的作品
import 'expect/build/types'
declare module 'expect/build/types' {
export interface Matchers<R> {
// matchers methods here
}
}