Angular 非类型化函数调用可能不接受类型参数

Angular 非类型化函数调用可能不接受类型参数,angular,rxjs,observable,google-cloud-firestore,angular6,Angular,Rxjs,Observable,Google Cloud Firestore,Angular6,我正在使用Angular6,并试图在这个过滤函数中获取文档内容。代码片段的最后一行给出了错误“非类型化函数调用可能不接受类型参数”。不知道为什么我会出现这个错误。。。可能它不能在过滤器功能中使用 建造商: constructor(private afs : AngularFirestore, private authService : AuthService) { //Get user collection on initialise this.userCollection = thi

我正在使用Angular6,并试图在这个过滤函数中获取文档内容。代码片段的最后一行给出了错误“非类型化函数调用可能不接受类型参数”。不知道为什么我会出现这个错误。。。可能它不能在过滤器功能中使用

建造商:

constructor(private afs : AngularFirestore, private authService : AuthService) { 
  //Get user collection on initialise
  this.userCollection = this.afs.collection('users');
}
筛选:

this.userCollection = this.afs.collection<User>('users', ref => {
      console.log(ref);
      return ref
    })

    this.usersOnSearch = this.userCollection.valueChanges();

    this.usersOnSearch.flatMap(user => {
      return user.filter(function(value) {
        let subjectTrue : boolean = false;
        let levelTrue : boolean = false;
        let docID : string = value.user_subjects.id;
        let userLevelPriceDocument :  AngularFirestoreDocument<UserSubjects>;
        userLevelPriceDocument = this.afs.doc<UserSubjects>(`user_subjects/${docID}`);
      })
    });
this.userCollection=this.afs.collection('users',ref=>{
控制台日志(ref);
返回参考
})
this.usersOnSearch=this.userCollection.valueChanges();
this.usersOnSearch.flatMap(用户=>{
返回user.filter(函数(值){
让subjectTrue:boolean=false;
设levelTrue:boolean=false;
let docID:string=value.user\u subjects.id;
让userLevelPriceDocument:AngularFirestoreDocument;
userLevelPriceDocument=this.afs.doc(`user\u subjects/${docID}`);
})
});

flatMap
签名要求返回一种类型的
可观察的
。在您的情况下,您只返回
(在您的情况下是
any
,因为这是控制输出)。尝试用
Observable.of()包装返回值

this.usersOnSearch.flatMap(user => {
  return Observable.of( user.filter(function(value) {
    let subjectTrue : boolean = false;
    let levelTrue : boolean = false;
    let docID : string = value.user_subjects.id;
    let userLevelPriceDocument :  AngularFirestoreDocument<UserSubjects>;
    userLevelPriceDocument = this.afs.doc<UserSubjects>(`user_subjects/${docID}`);
  })
  )
});
this.usersOnSearch.flatMap(用户=>{
返回可观察的(用户)过滤器(函数(值){
让subjectTrue:boolean=false;
设levelTrue:boolean=false;
let docID:string=value.user\u subjects.id;
让userLevelPriceDocument:AngularFirestoreDocument;
userLevelPriceDocument=this.afs.doc(`user\u subjects/${docID}`);
})
)
});

如果删除,是否有错误?我们可以请你也来吗?和您的组件变量如果我删除,我将不再收到错误。其他信息将更新。您在filter()函数中似乎根本没有返回任何内容-您是否应该返回true/false以指示是否应将给定用户包括在结果中?不幸的是,这没有起作用。如果我像@Wandrille提到的那样删除,那么它就消除了错误。我认为这是正确的方法,但是对于Angular 6/rxjs 6,应该是“of”而不是“Observable”。