RxJS使用不同类型的Typescript扫描累加器和更新值

时间:2019-04-08 08:22:19

标签: typescript rxjs

尝试将具有不同类型的RxJS用于“输入和输出”:

a$: Subject<Request>;
b$: Observable<Pair[]>;

在我传递请求的地方,它在scan函数中得到处理,并添加到累加器中:

this.b$ = this.a$.pipe(
  startWith([]),
  scan(this.accumulator),
  shareReplay(),
);

accumulator(acc: Pair[], modification: Request): Pair[] {
  // .... process request and add the pair derived from request to acc
  return acc
}

但是打字稿立即开始抱怨累加器不适用于已定义的类型,并且仅适用于设置modification: any,就像根本不写打字稿一样。

我对Rx有误解吗?当我进入运行时,这种模式以前对我有用。

1 个答案:

答案 0 :(得分:0)

不知道您是否找到了答案,但您所要做的就是拆分主题和观察者定义:

https://stackblitz.com/edit/typescript-rxjs-scan