在过去的几天里,我一直被这个打字错误所困扰。
Cannot invoke an expression whose type lacks a call signature. Type '(<TResult1 = ApiResponse, TResult2 = never>(onfulfilled?: ((value: ApiResponse) => TResult1 | PromiseLike<TResult1>) | null | undefined, onrejected?: ((reason: any) => TResult2 | PromiseLike<...>) | null | undefined) => Promise<...>) | (<TResult1 = void, TResult2 = never>(onfulfilled?: ((va...' has no compatible call signatures.
代码:
const getDetailsPromise = myCode
? storeApi.getDetails(params, [myCode])
: Promise.resolve();
return getDetailsPromise.then(
(result: ApiResponse | void) => {
.......Some logic
.......Some logic
return Promise.resolve<
[MethodResponse, ResponseHeaders]
>([ShippingResponse, response.headers]);
}
);
storeApi.js
getDetails(
requestParams: RequestParams,
myCode: string[]
): Promise<ApiResponse> {
.......Some logic
.......Some logic
}
在这里,getDetailsPromise返回许诺或承诺。此外,如果值存在,我们期望myCode类型为string。在构建应用程序时,我会得到上面提到的错误。有人能帮我解决这个问题吗?任何帮助都会很感激的。
提前感谢!
发布于 2022-01-25 08:59:13
多亏了Anatoly。我将包装器中的返回类型更改为具有联合类型的承诺类型,而不是承诺-d类型的联合类型。
https://stackoverflow.com/questions/70677921
复制相似问题