gpt4 book ai didi

javascript - 在 Angular 12 中过滤 NavigationEnd 事件?

转载 作者:行者123 更新时间:2023-12-04 07:21:23 25 4
gpt4 key购买 nike

在 Angular 11 中,这有效:

this.r.events.pipe(
filter(event => event instanceof NavigationEnd),
map((event: NavigationEnd) => event.url == ROUTES.APPLICATION))
但是在 Angular 12 中,它会产生错误:

Argument of type 'MonoTypeOperatorFunction<Event_2>' is not assignable to parameter of type 'OperatorFunction<Event_2, NavigationEnd>'.
Type 'Observable<Event_2>' is not assignable to type 'Observable'.
Type 'Event_2' is not assignable to type 'NavigationEnd'.
Property 'urlAfterRedirects' is missing in type 'RouterEvent' but required in type 'NavigationEnd'.ts(2345)


有想法该怎么解决这个吗?
This question答案是:
"paths": {
"rxjs": [
"node_modules/rxjs"
],
"rxjs/*": [
"node_modules/rxjs/*"
]
}
tsconfig.json .然而这并没有奏效......

最佳答案

更新:做了一个谷歌,这看起来很有希望。看起来像是我在下面提到的类型谓词的紧凑形式。 (Source)

filter((event): event is NavigationEnd => event instanceof NavigationEnd))

了解 event 的初始类型会很有帮助。 .filter(event => event instanceof NavigationEnd) 中的参数
你的 IDE 中是否安装了 TypeScript 插件?至少在 VSCode 和 Atom 中,插件可以在您编写代码时在线显示变量的类型。这将帮助您找出不匹配的位置。
如果 event => event instanceof NavigationEnd不足以阻止 TS 对下一行的类型断言 ( event: NavigationEnd ) 大喊大叫,然后可能是 type predicate有助于?

关于javascript - 在 Angular 12 中过滤 NavigationEnd 事件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68478577/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com