如何修复以下错误? 属性 'pipe' 在类型 OperatorFunction 上不存在
How do I fix the following error? property 'pipe' does not exist on type OperatorFunction
我根据 RxJS 6 文档编写了以下代码。我目前是 运行 angular 5,RxJS 6 和 angularfire2 rc.10。我得到的错误是
[ts] property 'pipe' does not exist on type 'OperatorFunction<{}, [{}, user, string]>'.
这是代码
this.companies$ = combineLatest(this.authService.user$, this.filter$).pipe(
switchMap(([user, filter]) =>
this.afs.collection("companies", ref => {
if (user) {
ref.where("owner.network", "==", user.activeNetworkProfile.id);
}
if (user) {
ref.where("name", "==", filter);
}
return ref;
}).valueChanges()
)
);
this.authService.user$ 和 this.filter$ 是可观察的。
public filter$: Observable<string>;
public user$ : Observable<User>;
您没有显示您的导入语句,但从错误消息来看,您似乎导入了错误的 combineLatest
函数。
RxJS6 有两个 combineLatest
函数:
- 管道运算符:
import {combineLatest} from 'rxjs/operators'
- 创建方法:
import { combineLatest } from 'rxjs'
您正在使用创建方法,因此导入应该来自 'rxjs'
而不是来自 'rxjs/operators'
。
我根据 RxJS 6 文档编写了以下代码。我目前是 运行 angular 5,RxJS 6 和 angularfire2 rc.10。我得到的错误是
[ts] property 'pipe' does not exist on type 'OperatorFunction<{}, [{}, user, string]>'.
这是代码
this.companies$ = combineLatest(this.authService.user$, this.filter$).pipe(
switchMap(([user, filter]) =>
this.afs.collection("companies", ref => {
if (user) {
ref.where("owner.network", "==", user.activeNetworkProfile.id);
}
if (user) {
ref.where("name", "==", filter);
}
return ref;
}).valueChanges()
)
);
this.authService.user$ 和 this.filter$ 是可观察的。
public filter$: Observable<string>;
public user$ : Observable<User>;
您没有显示您的导入语句,但从错误消息来看,您似乎导入了错误的 combineLatest
函数。
RxJS6 有两个 combineLatest
函数:
- 管道运算符:
import {combineLatest} from 'rxjs/operators'
- 创建方法:
import { combineLatest } from 'rxjs'
您正在使用创建方法,因此导入应该来自 'rxjs'
而不是来自 'rxjs/operators'
。