Angular 角度路由器订阅-events.Subscribe=>;url不是一个属性?

Angular 角度路由器订阅-events.Subscribe=>;url不是一个属性?,angular,router,Angular,Router,正在寻找有关解决上述代码的以下编译器错误的帮助。该属性确实作为angular router事件的一部分存在,我可以操作并使用它,但在尝试构建时不能编译它 import { Component } from '@angular/core'; import { Route, Router } from '@angular/router'; @Component({ selector: 'app-root', templateUrl: './app.component.html', s

正在寻找有关解决上述代码的以下编译器错误的帮助。该属性确实作为angular router事件的一部分存在,我可以操作并使用它,但在尝试构建时不能编译它

import { Component } from '@angular/core';
import {  Route, Router } from '@angular/router';

@Component({
  selector: 'app-root',
  templateUrl: './app.component.html',
  styleUrls: ['./app.component.css'],

})

 constructor(router: Router)
 {
    router.events.subscribe(e => { 
      sessionStorage.setItem('redirectAuthPreviousRouteUrl',e.url);
    });
}
当我订阅的值认为该属性不存在或在某些情况下可能不存在时,设置该值的正确方法是什么


我使用Angular 6

之所以这样做,是因为
事件
接口没有
url
属性,尽管许多实现类都没有

如果您知道您感兴趣的
事件类型,可以执行以下操作:

src/app/app.component.ts(18,105): 
error TS2339: Property 'url' does not exist on type 'Event'. 

这将防止编译错误,但也确保事件是您期望的类型(从而防止您意外地将
redirectAuthPreviousRouteUrl
设置为未定义)

您可以提供整个组件代码吗?此“事件”应该是RouterEvent(此处描述)的实例,而不是“事件”。根据
事件
属性中的文档,此
路由器是哪种类型的对象
?@ChristianBenseler是一个可观察的
对象
您是如何获得此“路由器”的?通过依赖注入?提供app.component.ts代码。从技术上讲,如果您在这里遵循这一点,那么您所做的应该是可行的,因为发出的事件将是RouterEvent@ChristianBenseler我已经发布了完整的代码,如果我的理解是正确的,它应该是对组件的注入。您是否尝试筛选事件,并仅返回RouterEvent实例中的事件(具有url属性的类型),如我提供的链接所示?
.filter(e=>e instanceof RouterEvent).subscribe()
导入resolveStart从何处开始,因为它抛出“找不到resolveStart”error@Troyd来自“@angular/router”(虽然猜测您可能对来自同一模块的
NavigationEnd
事件更感兴趣)
router.events.subscribe(e => { 
  if (e instanceof ResolveStart)
    sessionStorage.setItem('redirectAuthPreviousRouteUrl', e.url);
});