- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我有以下代码:
export class EventsChainComponent {
eventSubscriber:Subscription;
constructor (protected eventService: EventService) {}
public registerComponentsEvent(event:any) {
// getOnEvent signature
// (method) EventService.getOnEvent(): Observable<FormEvent>
this.eventSubscriber = this.eventService.getOnEvent()
.pipe(filter((formEvent: FormEvent) => {return formEvent.key == event.event}))
.subscribe((formEvent: FormEvent) => {
..........
});
}
当我编译时,编译器返回以下错误:
Argument of type 'MonoTypeOperatorFunction' is not assignable to parameter of type 'OperatorFunction'.
所以,我搜索了一下,找到了 RxJs6
运算符过滤器 API:
export declare function filter<T, S extends T>(predicate: (value: T, index: number) => value is S, thisArg?: any): OperatorFunction<T, S>;
export declare function filter<T>(predicate: (value: T, index: number) => boolean, thisArg?: any): MonoTypeOperatorFunction<T>;
如您所见,过滤器作为 2 个重载方法,一个返回 OperatorFunction
,另一个返回 MonoTypeOperatorFunction
。
谁能告诉我这两种类型的区别?谁知道我该如何解决这个错误?
注意:FormEvent
类是我创建的,EventService
和 EventsChainComponent
具有相同的导入,引用相同的类。
最佳答案
对于其他有此问题的人:
我遇到了同样的问题。在我的例子中,问题出在事件对象上。
rxjs 和 angular/router 都有一个事件对象,所以发生了名称冲突。我为解决这个问题所做的是用不同的名称声明 @angular/router 事件,然后相应地使用。
{Event as RouterEvent} from '@angular/router';
之后:当我想使用 rxjs.Event 时,我使用 Event
,当我想使用 @angular/router.Event 时,我使用 RouterEvent
。错误消失了:)
希望对你有帮助
关于angular - RxJs6:OperatorFunction 与 MonoTypeOperatorFunction,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52594026/
在我的 Angular-12 应用程序中,我在服务中有以下代码: constructor(private http: HttpClient, private router: Router) {
我根据 RxJS 6 文档编写了以下代码。我目前正在运行 angular 5、RxJS 6 和 angularfire2 rc.10。我得到的错误是 [ts] property 'pipe' does
我有以下代码: export class EventsChainComponent { eventSubscriber:Subscription; constructor (prote
我已经订阅了我想要传输的数据。但不知何故它不起作用。我收到此错误: The property pipe is not available for type "OperatorFunction" 这是我
我试图理解可观察 API 的 pipe 运算符: export declare class Observable implements Subscribable { ....... pipe
我正在使用 RxJS 6我的代码中有两个 observable import { combineLatest } from 'rxjs/operators'; loading$: Observable
我知道之前已经多次询问过这个问题,但是,我无法弄清楚如何使用以下帖子更改我自己的代码。 Property 'subscribe' does not exist on type 'OperatorFun
我正在尝试进行剑道聊天示例:https://www.telerik.com/kendo-angular-ui/components/conversationalui/ 我使用 Visual Studi
当使用 Rxjs 6 时,IDE 在使用 partition 方法时报告错误 - 即使函数工作正常。 例如:我有这个示例代码: import { of } from 'rxjs'; import {
在学习如何处理 Angular Typescript 中的错误时抛出了一个错误 Property 'subscribe' does not exist on type 'OperatorFunctio
我正在尝试从 firebase 获取数据,但遇到错误 "Property 'subscribe' does not exist on type 'OperatorFunction'" 有什么想法吗?这
为什么我无法订阅 concat() 运算符的结果,即使它看起来与文档和示例中的结果相同 https://rxjs-dev.firebaseapp.com/api/index/function/conc
我已经使用新的 更新了在 Angular 5.5/rxJS5.5 中运行良好的代码管道 使用 rxjs-lint 包和以下命令对 Angular 6/rxJS6 的方法 npm i -g rxjs-t
我是一名优秀的程序员,十分优秀!