这个主题有一个过去的问题,但未发布答案:
我想为testdouble-jest
创建类型,但是其导出函数中的第二个参数是全局jest
实例,该实例在@types/jest
中声明为顶层声明的命名空间:
declare namespace jest {
mock(): something
// ...
}
编辑:以下是这些类型:https://github.com/DefinitelyTyped/DefinitelyTyped/blob/master/types/jest/index.d.ts
如何在我的test-double.d.ts
声明中引用此全局对象?我的声明如下,但部分成功:
/// <reference types="jest" />
// do i actually need the above directive?
declare module "testdouble-jest" {
import * as td from "testdouble"; // the testdouble stuff works
export type TestdoubleJest = typeof td & {
mock: typeof jest.mock; // this actually appears to work
};
function setupTestdoubleJest(
testdouble: typeof td,
jest: typeof jest // this just resolves to any
): TestdoubleJest;
export = setupTestdoubleJest;
}
如果有人知道该怎么做,我将不胜感激!
编辑2:有一些关于DefinitelyTyped的人的例子,它们要么增加了'jest'名称空间,要么使用了它的成员(就像我对jest.mock
所做的那样),但是我找不到一个指向实际的全局{ {1}}个对象。
答案 0 :(得分:0)
替换
/// <reference types="jest" />
使用
/// <reference types="@types/jest" />
对我有用。