为什么以下rxjs调用switchMap会给出类型错误?

时间:2019-04-08 20:57:21

标签: typescript rxjs

我无法获取此代码进行类型检查。它可以编译并正常运行,我不清楚我是否丢失了某些内容,或者类型检查器是否很愚蠢。

import * as Rx from 'rxjs'

const foo : Rx.Observable<number> =
    Rx.of<number>(1)
      .pipe<number>(
          switchMap<number,Rx.Observable<number>>(
              (n : number) => Rx.of<number>(n)
          )
      )

我的实际示例更加复杂,如您所见,我添加了许多类型注释来尝试和帮助它,但是在结果类型中,这总是使我留下未实例化的自由变量。

Argument of type 'OperatorFunction<number, T>' is not assignable to parameter
of type 'OperatorFunction<number, number>'.
   Type 'T' is not assignable to type 'number'. (tsx-tide)

1 个答案:

答案 0 :(得分:0)

万一其他人遇到这种情况,它会通过更改我的tsconfig.json来修复自身。不知道是哪个字段引起了问题,但是我做了以下更改:

  • moduleamd切换到ESNext(这可能有所帮助)
  • targetes6切换到ES6(我认为这没有任何作用)
  • 删除了我的lib,其中包含domes2016es2016.array.include
  • 删除"experimentalDecorators": true