网站搜索

typescript - 使用变量调用 jest.spyOn 的“方法名”参数


使用 Typescript 和 Jest,我有一个定义了方法的类

export class myAPI {
   public someMethod(){...}
}

并且想在其上调用 jest.spyOn,这对于像这样的直接调用效果很好

jest.spyOn(myAPI.prototype, 'someMethod')

但是当尝试将第二个参数 method 作为变量提供时:

const theMethodName : string = 'someMethod'
jest.spyOn(myAPI.prototype, theMethodName)

我收到一个 类型 'string' 的参数不能分配给类型 'FunctionPropertyNames<Required<myApi>>' 的参数。

我如何将其强制转换为期望的类型?

答案#1

确保变量没有被显式声明为 string 类型,而是声明为 any 类型,这解决了问题!