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路由器事件的一部分存在,我可以操作和使用它,但不能在尝试构建时编译它。
src/app/app.component.ts(18,105):
error TS2339: Property 'url' does not exist on type 'Event'. 当它认为属性不存在,或者在某些情况下可能不存在时,设置我订阅的值的正确方法是什么?
我使用的是Angular 6
发布于 2018-05-30 01:30:50
这是因为Event接口没有url属性,尽管许多实现类。
如果你知道你对哪种类型的Event感兴趣,你可以这样做:
router.events.subscribe(e => {
if (e instanceof ResolveStart)
sessionStorage.setItem('redirectAuthPreviousRouteUrl', e.url);
});这将防止编译错误,但也确保事件是您所期望的类型(从而防止您意外地将redirectAuthPreviousRouteUrl设置为未定义的)
https://stackoverflow.com/questions/50589731
复制相似问题