使用 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);
});
Run Code Online (Sandbox Code Playgroud)
该代码工作正常,并以奇数和偶数分隔输入。但是VSCode和StackBlitz在partition调用方法的那一行报错:
“UnaryFunction, [Observable, Observable]>”类型的参数不可分配给“OperatorFunction”类型的参数。类型 '[Observable, Observable]' 不可分配给类型 'Observable'。类型“[Observable, Observable]”中缺少属性“_isScalar”。
这是stackblitz URL:https ://stackblitz.com/edit/rxjs6-learn
根据@cartant发表的评论和链接的Github 问题,正确的调用语法partition如下:
const source = from([1, 2, 3, 4, 5, 6])
const [evens, odds] = partition((val: any) => val % 2 === 0)(source)
Run Code Online (Sandbox Code Playgroud)
这将消除 IDE 中显示的错误
| 归档时间: |
|
| 查看次数: |
1297 次 |
| 最近记录: |