2016-12-17 15 views
0

我想将任何方法转换为TypeScript上的方法签名。如何将任何方法转换为打字稿上的方法签名

我正在使用RxJs和一个有事件的cordova插件。这个事件有一个“任何”签名,所以当我绑定它与“bindCallback”,我不能把我的参数。

下面的代码工作,但工作而没有明显的模式:

this.map.on((<any>window).plugin.google.maps.event.CAMERA_CHANGE,() => { 
try { 
    console.log('it works!!'); 
} catch(err) { 
    console.log(err); 
} 

我认为与观察到的模式将是这样的:

let eventAsObservable = Rx.Observable.bindCallback(this.map.on); 
let result = eventAsObservable((<any>window).plugin.google.maps.event.CAMERA_CHANGE); 
result.subscribe(x => console.log('don't work --> ' + JSON.stringify(x))); 

我的问题是,“eventAsObservable”唐不接受参数。我认为这是因为“this.map.on”被标记为任何。

所以,如果我可以将“any”强制转换为接受数字或字符串参数签名的方法,那将会很棒。

我该如何解决它?

非常感谢

回答

0

了变化这个

let eventAsObservable = Rx.Observable.bindCallback(this.map.on); 

对此

let eventAsObservable = Rx.Observable.bindCallback(<(a: number) => any>this.map.on); 

对我的作品

相关问题