rxjs6分区方法:无法将类型“ UnaryFunction”的参数分配给类型“ OperatorFunction”的参数

时间:2018-07-23 03:20:44

标签: rxjs6

使用Rxjs 6时,即使功能正常,IDE也会使用partition方法报告错误。

例如:我有以下示例代码:

import { of } from 'rxjs';
import { filter, partition } from 'rxjs/operators';

let obs = of(1,2,3,4,6,9,111,13,10,12);

let [a, b] = obs.pipe(
  filter(v => v > 3),
  partition(p => p % 2 == 0)
);

a.subscribe(v => {
  console.log(v);
});

b.subscribe(v => {
  console.log(v);
});

该代码可以正常工作,并且可以将输入分为奇数和偶数。但是,VSCode和StackBlitz在调用partition方法的行上报告错误:

  

“ UnaryFunction”类型的参数,   [可观察,可观察]>'不可分配给   “ OperatorFunction”类型的参数。类型   “ [可观察,可观察]”不能分配给类型   “可观察”。       类型[[Observable,Observable]]中缺少属性'_isScalar'。

这是stackblitz URL: https://stackblitz.com/edit/rxjs6-learn

1 个答案:

答案 0 :(得分:3)

基于@cartant发布的评论以及链接的Github issue,调用partition的正确语法如下:

const source = from([1, 2, 3, 4, 5, 6])
const [evens, odds] = partition((val: any) => val % 2 === 0)(source)

这消除了IDE中显示的错误

相关问题