我正在开玩笑地模拟具有此签名的方法的实现
(arg1: string, arg2: string, arg3: callback)
(arg1: string, arg3: callback)
并且我想通过模仿实现直接在我的测试中调用arg3
func.mockImplementation((arg1: string, arg2: string, arg3: callback) => {
const actualCallback = arg2 // we know we are using the second case here.
actualCallback()
})
但是打字稿给我一个错误。嘲笑函数签名时如何跳过打字稿检查?
答案 0 :(得分:1)
您可以通过以下两种方式之一进行操作。
func.mockImplementation((arg1: string, arg2: string | callback, arg3: callback) => {
const actualCallback = arg2 as callback // Explicitly tell TS what type it is.
actualCallback()
})
func.mockImplementation((arg1: string, arg2: string, arg3: callback) => {
const actualCallback = arg2
// @ts-ignore
actualCallback()
})