类型"Observable< Event>"上不存在属性“过滤器" [英] Property 'filter' does not exist on type 'Observable<Event>'
问题描述
我在路由器3.0中使用了Angular 2 final.我想过滤从this.router.events
Hi I am using Angular 2 final with router 3.0. I want to filter the events that are emitted from this.router.events
我想做什么:
import 'rxjs/operator/filter';
//...
this.router.events
.filter((event:Event) => event instanceof NavigationEnd)
.subscribe(x => console.log(x))
event
可以是NavigationEnd
,NavigationStart
或RoutesRecognized
的instanceOf,但是我只想要NavigationEnd
.但是我收到一个错误
event
can be instanceOf NavigationEnd
, NavigationStart
or RoutesRecognized
but I want only NavigationEnd
. But I get an error that
Property 'filter' does not exist on type Observable<Event>
在编译期间.
当我导入整个rxjs
库时,错误消失了.我应该导入什么才能使其在不加载完整的rxjs库的情况下起作用?
When i import the whole rxjs
library the error disappears. What should I import to make it work without loading the full rxjs library ?
推荐答案
更新
对于RXJS 5.x
版本:
import 'rxjs/add/operator/filter';
对于RXJS 6.x
版本:
import { filter } from 'rxjs/operators';
遵循规则由RxJS团队设计,用于帮助 JavaScript开发人员重构导入路径:
The following rules have been designed by the RxJS team to help JavaScript developers refactor import paths:
-
rxjs/operators
:包含所有可管道运算符.
rxjs/operators
: Contains all pipeable operators.
import { map, filter, scan } from 'rxjs/operators';
-
rxjs
:包含创建方法,类型,调度程序和实用程序.
rxjs
: Contains creation methods, types, schedulers, and utilities.
import { Observable, Subject, asapScheduler, pipe, of, from,
interval, merge, fromEvent } from 'rxjs';
import { Observable, Subject, asapScheduler, pipe, of, from,
interval, merge, fromEvent } from 'rxjs';
这篇关于类型"Observable< Event>"上不存在属性“过滤器"的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!