使用TypeScript在Cordova.exec内部回调函数

我对Cordova的TypeScript Definition有个问题。

codrova.d.ts文件允许成功回调和错误回调没有函数参数。

为了更好地理解我的问题一个小例子:

那就是cordova.d.ts文件的原始代码

exec(success: () => any, fail: () => any, service: string, action: string, args?: string[]): void;

现在我想写一个类似于这种结构的类型脚本

module Plugin { 

export class {

constructor(){
cordova.exec(this.success,this.error,"Service","Action",null);
}

private success(message:string)
{
   //do Something
}

private error(message:string)
{
   //do Something
}

现在我在消息的cordova.exec调用行中遇到错误,成功和错误的函数签名匹配像这样(message:string)=> void和()=> any不兼容。

我的问题是,如果一个调用是成功的,我怎样才能使用回调参数给平台独立端提供更详细的信息。

或者在cordova.d.ts操作中出现错误?

感谢帮助!


快速修复

您需要对示例代码进行一些修复......

module Example {

    class Test {

        constructor() {
            cordova.exec(this.success, this.error, "Service", "Action", null);
        }

        private success() {
            //do Something
        }

        private error() {
            //do Something
        }
    }
}

这通过了Cordova的定义。

如果您怀疑这是错误的, successerror实际上可能需要一个字符串,您可以使它们成为可选项,并且它仍然会通过现有的类型检查:

private success(message?: string) {
    //do Something
}

适当的修复

当然,如果类型定义是错误的,你可以用正确的定义更新它,并将它提交给Definitely Typed项目。

exec(success: Function,
    fail: (message: string) => any,
    service: string,
    action: string,
    args?: string[]): void;

基于一个假设,我在这里提出了不同的建议修复方法......成功函数将传递一些成功的具体内容,可能是消息或对象(谁知道是什么)。 失败函数将传递一个字符串消息。

链接地址: http://www.djcxy.com/p/64393.html

上一篇: Callback Functions inside the Cordova.exec with TypeScript

下一篇: I can't access native iOS from javascript in phonegap 2.7.0 using CDVPlugin?