【问题标题】:How cast any to method signature on typescript如何在打字稿上转换任何方法签名
【发布时间】:2017-05-03 08:36:15
【问题描述】:

我想将 any 强制转换为 TypeScript 上的方法签名。

我正在使用 RxJs 和一个有事件的 cordova 插件。这个事件有一个“any”签名,所以当我用“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。

所以,如果我可以将“any”转换为接受数字或字符串参数签名的方法,那就太好了。

我该如何解决?

非常感谢

【问题讨论】:

    标签: typescript ionic2 cordova-plugins rxjs


    【解决方案1】:

    改变这个

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

    到这里

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

    为我工作

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-06-10
      • 1970-01-01
      • 2020-06-27
      • 2020-01-17
      • 2019-09-21
      • 2022-01-24
      • 1970-01-01
      • 2022-07-21
      相关资源
      最近更新 更多