2016-12-17 49 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); 

對我的作品

相關問題