我已经完成了将我的应用程序更新到Angular 6(它是5.2版本).

我在以下语法中出错:

import { Router, ActivatedRoute, NavigationEnd } from '@angular/router';
import { filter } from 'rxjs/operators';
...
constructor(private router: Router) {}

this.router.events.filter
      (event => event instanceof NavigationEnd).subscribe((res) => 
    {
      // DO something
    });

错误TS2339:类型上不存在属性"筛选器"

Angular 6中正确的语法是什么?

谢谢

推荐答案

以下是如何使用Angular 6+和最新RxJS过滤路由事件:

import { Component, OnInit } from '@angular/core';
import { Router, ActivatedRoute, NavigationEnd } from '@angular/router';

import { filter } from 'rxjs/operators';

export class MyComponent implements OnInit {
    constructor(private router: Router, private activatedRoute: ActivatedRoute) {}

    ngOnInit() {
        this.router.events.pipe(
            filter(event => event instanceof NavigationEnd)
        ).subscribe(() => {
            console.log(this.activatedRoute.root);
        });
    }
}

使用pipe运算符,而不是try 对可观察对象进行链式筛选.

Typescript相关问答推荐

带脉轮UI的TypScript支持StyleProps的正确方法是什么?

输入具有相同键但值类型不同的对象

如何在类型脚本中使用条件陈述循环

使用React处理Websocket数据

如何使用泛型类型访问对象

接口的额外属性作为同一接口的方法的参数类型'

如何将类型从变量参数转换为返回中的不同形状?

如何在LucideAngular 添加自定义图标以及如何使用它们

接口中函数的条件参数

如何使用类型谓词将类型限制为不可赋值的类型?

ANGLE独立组件布线错误:没有ActivatedRouting提供程序

如何在省略一个参数的情况下从函数类型中提取参数类型?

编译TypeScrip项目的一部分导致错误

TypeScrip-如何自动推断UNION变量的类型

如何键入派生类的实例方法,以便它调用另一个实例方法?

类型实例化过深,可能是无限的&TypeScrip中的TupleUnion错误

如何在Nextjs路由处理程序中指定响应正文的类型

递归生成常量树形 struct 的键控类型

将带有额外id属性的Rust struct 展平回TypeScript单个对象,以返回wasm-bindgen函数

我可以在 Typescript 中重用函数声明吗?