我想升级"paypal-rest-sdk" typings。这个SDK的方法是payment.authorization.void(...);
@types/paypal-rest-sdk上不存在void方法,我正尝试用局部声明来覆盖它。
代码示例:
declare module "paypal-rest-sdk" {
export namespace authorization {
function void(): any;
}
}
export const paypal = Paypal;但是这段代码不起作用,当我尝试调用void方法时,typescript显示一个错误:Error:(94, 49) TS2339: Property 'void' does not exist on type 'typeof authorization'.
发布于 2018-02-27 01:58:16
我所能看到的提供包含名为void (sigh)的方法的类型定义的唯一方法是使用变量而不是命名空间。
下面是一个基于确定类型(但将authorization命名空间转换为变量)上的当前定义的示例。
export var authorization: {
get: (
id: string,
config: http.RequestOptions | CallbackFunction<AuthorizationResource>,
cb?: CallbackFunction<AuthorizationResource>) => void;
capture: (
id: string,
data: CaptureRequest | http.RequestOptions | CallbackFunction<CaptureResource>,
config?: http.RequestOptions | CallbackFunction<CaptureResource>,
cb?: CallbackFunction<CaptureResource>) => void;
reauthorize: (
id: string, data: Amount | http.RequestOptions | CallbackFunction<AuthorizationResource>,
config?: http.RequestOptions | CallbackFunction<AuthorizationResource>,
cb?: CallbackFunction<AuthorizationResource>) => void;
void: (data?: any, config?: http.RequestOptions, cb?: CallbackFunction<any>) => void;
}具体变化:
export namespace authorization更改为注解主体转换为类型annotationexport function转换为成员可以在没有类型错误的情况下访问:
...authorization.void(data, config, callback);https://stackoverflow.com/questions/48992321
复制相似问题