Я думаю, если вы создадите интерфейс, давайте сделаем его как универсальный интерфейс вместо настройки универсального для каждого свойства.
interface ServiceInterface<T> {
get(): T;
}
Когда вы создаете макет с помощью Jest:
class Service<T> implements ServiceInterface<T> {
get = jest.fn<T, []>((): T => null);
}
const instance = new Service<string>();
const result = instance.get(); // typeof result === "string"
Для вашего случая, что вам нужно смоделировать это возвращаемое значение get()
interface ServiceInterface {
get<T>(): T;
}
const mockedGet = jest.fn();
class Service implements ServiceInterface {
get<T>(): T {
return mockedGet();
}
}
const instance = new Service();
mockedGet.mockReturnValue("Hello!");
const result = instance.get<string>(); // now, result is a string