Firebase:firebase.Promise<any> 与 Rxjs Promise<any> 的兼容性

Firebase : firebase.Promise<any> compatibility with Rxjs Promise<any>

我正在尝试使用 angular-cli 生成的项目将 firebase.Promise 转换为 Observable

Here 据说 firebase.PromiseNative PromisePromise/A+ 实现兼容。

但是当我尝试使用 rxjs 的 Observable.fromPromise() 方法时出现错误。

Argument of type 'firebase.Promise<any>' is not assignable to parameter of type 'Promise<any>'.                                                               
  Types of property 'then' are incompatible.                                                                                                                  
    Type '(onResolve?: (a: any) => any, onReject?: (a: Error) => any) => Promise<any>' is not assignable to type '{ <TResult1, TResult2>(onfulfilled: (value: 
any) => TResult1 | PromiseLike<TResult1>, onrejected:...'.                                                                                                    
      Type 'firebase.Promise<any>' is not assignable to type 'Promise<any>'.

它确实有效,但有错误很烦人,关于如何以干净的方式避免此错误的任何想法?

谢谢。

在 TypeScript 中,您可以使用类型转换:

let promise = firebase.whatever();
Observable.fromPromise(<Promise<any>>promise);