当测试在不同文件中具有依赖关系的模块并将该模块分配为 jest.mock
时,TypeScript 会给出错误方法 mockReturnThisOnce
(或任何其他 jest.mock
) 在依赖项上不存在,这是因为它是以前键入的。
让 TypeScript 从 jest.mock
继承类型的正确方法是什么?
这是一个简单的例子。
依赖
const myDep = (name: string) => name;
export default myDep;
测试.ts
import * as dep from '../depenendency';
jest.mock('../dependency');
it('should do what I need', () => {
//this throws ts error
// Property mockReturnValueOnce does not exist on type (name: string)....
dep.default.mockReturnValueOnce('return')
}
我觉得这是一个非常常见的用例,不知道如何正确输入。
原文由 Philip Chmalts 发布,翻译遵循 CC BY-SA 4.0 许可协议
使用 TypeScript 2.8,我们可以使用
ReturnType
这样做: