输入'Observable&lt; {}&gt;'不能分配给'Observable <profile []>'

时间:2017-11-22 07:17:43

标签: angular ionic-framework

profileData : Observable<Profile>;

async ionViewWillLoad(){
    await this.afAuth.authState.take(1).subscribe(data => { 
       if (data && data.email && data.uid){
            this.newProfile = this.afDatabase.object(`profile/${data.uid}`).valueChanges();
        }
    })
}

我在this.newProfile

收到错误
  

输入'Observable&lt; {}&gt;'不能分配给'Observable'类型。

  

输入'Observable&lt; {}&gt;'不能分配给'Observable'类型。类型“{}”不能分配给“个人资料”类型。 “{}”类型中缺少属性“用户名”。

这是about.ts

3 个答案:

答案 0 :(得分:2)

valueChanges Observable返回的类型可能隐式为Object,当然,它不能分配给Profile类型。尝试明确地输入它:

async ionViewWillLoad(){
await this.afAuth.authState.take(1).subscribe(data => { 
   if (data && data.email && data.uid){
        this.newProfile = <Observable<Profile>>this.afDatabase.object(`profile/${data.uid}`).valueChanges();
    }
})

}

答案 1 :(得分:0)

Observable<any>;

只需将其设置为any或确保返回的值属于profile。

答案 2 :(得分:0)

您是否尝试从profileData删除类型声明?这对我有用。

profileData;代替profileData : Observable<Profile>;