我有一个类似的模型
export interface IAdminUser {
name: string
role:string
office:{
department:string
designation:string
}
}
在我的app.component.ts中,我通过一些数据填充它
export class AppComponent {
data = {
name: "Admin",
mob: 8888888888,
email: "admin@gmail.com",
role: '1',
office: {
department: "IT",
designation: "Admin",
code: "ADMIN123"
}
};
adminInfor: IAdminUser = {};
ngOnInit() {
this.adminInfor.name = this.data.name;
this.adminInfor.role = this.data.name;
this.adminInfor.office.department = this.data.office.department;
this.adminInfor.office.designation = this.data.office.designation;
}
}
我在底线中出错
adminInfor:IAdminUser={}
//类型{}在类型IAdminUser中缺少以下属性;"姓名、角色等
如果我像这个一样标记它
adminInfor: IAdminUser = {
name:'',
role:'',
office:{
department:'',
designation:'',
}
}
我想知道有没有其他有效的方法可以做到这一点,而不是用空值初始化所有键。
不能将具有Class/Interface
类型的变量初始化为{}
。
在您的情况下,由于编译时类型检查,adminInfor: IAdminUser = {};
肯定会抛出错误。
您也可以初始化为:,而不是''
adminInfor: IAdminUser = {
name: null,
role: null,
office:{
department: null,
designation: null,
}
}
type interface
IAdminUser
的属性是必需的,但在这一行中
adminInfor: IAdminUser = {};
您错过了初始化属性。
初始化它们或使它们在类似type interface
的中可选
interface IAdminUser {
name?: string,
role?: string,
office?: {
department: string,
designation: string,
}
}