В этой теме был прошлый вопрос, но ответа не было:
Как импортировать файл определения типа Typescript, элемент верхнего уровня которого является неэкспортированным пространством имен?
Я хочу создать тип для 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;
}
Если кто-нибудь знает, как это сделать, я буду очень признателен!
РЕДАКТИРОВАТЬ: Есть несколько примеров того, как на DefiniteTyped люди либо увеличивают пространство имен 'jest', либо используют его члены (как я это сделал с jest.mock
), но я не могу найти один, ссылающийся на реальный глобальный jest
объект.