我是打字稿的新手,我得到了错误
输入' {}'不能分配给'个人资料'。
on this.profile 我该如何解决这个问题?
import { Component } from '@angular/core';
import { IonicPage, NavController, NavParams } from 'ionic-angular';
import { AngularFireAuth } from 'angularfire2/auth';
import { AngularFirestore } from 'angularfire2/firestore';
import { Profile } from './../../models/profile';
@IonicPage()
@Component({
selector: 'page-profile',
templateUrl: 'profile.html',
})
export class ProfilePage {
profile = {} as Profile;
constructor(private afs: AngularFirestore, private afAuth: AngularFireAuth,
public navCtrl: NavController, public navParams: NavParams) {
}
ionViewWillLoad() {
this.afAuth.authState.take(1).subscribe(data => {
let profileCollection = this.afs.collection('profiles').doc(`${data.uid}`).valueChanges();
profileCollection.subscribe(profile => this.profile = profile);
})
}
}
答案 0 :(得分:1)
您的问题是,您的Profile
类型可能具有强制属性。您只需要使它们可选或将它们初始化为默认值。您不能将空对象分配给具有属性的类型。
你可以做的只是在没有初始化的情况下说profile: Profile
。您仍在执行该类型。由于您只是在订阅中分配它,因此您不需要执行{}
空对象分配。
答案 1 :(得分:0)
类型“{}”不能分配给“个人资料”类型。
如果你想使用这样的断言,你需要使用双断言模式,即
profile = {} as any as Profile;
double assertion typescript