我通过npm更新了我的typescript包,现在出现了以下错误:
"TS2345: 类型为'(response: string) => void'的参数无法分配给类型为'((value: {}) => void | PromiseLike) | null | undefined'的参数"
尝试编译以下代码时出现以上错误:
private _send<T>(urlPath: string, params?: RequestParams): Promise<T> {
return this._requester.sendRequest<T>(this._datafeedURL, urlPath, params);
}
public getServerTime(callback: ServerTimeCallback): void {
this._send('time')
.then((response: string) => {
const time = parseInt(response);
if (!isNaN(time)) {
callback(time);
}
})
.catch((error?: string | Error) => {
logMessage(`Failed to load server time, error=${getErrorMessage(error)}`);
});
}
错误来自.then这行代码。
我已经阅读了其他类似的问题,但是对于我的情况,我无法理解问题所在。
_send
方法的具体实现吗?或者至少它的返回类型是什么? - CRiceT
的类型,因此它会得到一个默认类型为{}
(太宽泛,导致您看到的问题)。为了了解为什么推断不起作用,我们需要知道this._requester.sendRequest
的签名。this._requester
的类型是什么,如果可能的话,您能否发布其sendRequest
方法的代码?或者如果它来自库,您能告诉我们是哪个库吗? - CRicethis._send<string>('time')
。 - jcalz