首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >非类型化函数调用可能不接受类型参数

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

Stack Overflow用户
提问于 2018-07-23 03:53:57
回答 1查看 2.8K关注 0票数 0

我正在使用Angular6,并尝试在此过滤器函数中获取文档内容。我的代码片段的最后一行给出了一个错误:“非类型化函数调用可能不接受类型参数”。不确定为什么我会收到这个错误...也许它不能在过滤函数中使用...?

构造函数:

代码语言:javascript
复制
constructor(private afs : AngularFirestore, private authService : AuthService) { 
  //Get user collection on initialise
  this.userCollection = this.afs.collection('users');
}

过滤:

代码语言:javascript
复制
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}`);
      })
    });
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-07-23 04:32:40

flatMap签名需要返回一种类型的Observable<T>。在您的例子中,您只返回<T> (在您的例子中是any,因为这是控制输出)。尝试用Observable.of()包装返回值:

代码语言:javascript
复制
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}`);
  })
  )
});
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51468760

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档