我正在尝试使用jest
并在打字稿中模拟ioredis
。
问题是我从typescript
收到错误:
tests/__mocks__/ioredis.ts(5,9): error TS2339: Property 'prototype' does not exist on type 'Redis''
代码确实有效,但我想解决这个错误。 这是我的模拟:
// tests/__mocks__/ioredis.ts
import { Redis } from 'ioredis';
const IORedis: Redis = jest.genMockFromModule<Redis>('ioredis');
IORedis.prototype.hgetall = jest.fn().mockImplementation(async (key: string) => {
// Some mock implementation
});
module.exports = IORedis;
我做错了什么?
答案 0 :(得分:1)
如果需要扩展的类型是通用类型,则可以在创建联合类型时使用类型变量。
interface IPrototype { prototype: any; }
type ExtendedType<A, B> = IPrototype & BasicType<A, B>;
然后您可以使用
进行投射(myvar as ExtendedType<any, any>).prototype