使用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的定义。
如果您怀疑这是错误的, success
和error
实际上可能需要一个字符串,您可以使它们成为可选项,并且它仍然会通过现有的类型检查:
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?