使用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
答案 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中显示的错误