具有类型接口的Angular属性在声明中引发错误



我有一个类似的模型

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 interfaceIAdminUser的属性是必需的,但在这一行中

adminInfor: IAdminUser = {};

您错过了初始化属性。

初始化它们或使它们在类似type interface的中可选

interface IAdminUser {
name?: string,
role?: string,
office?: {
department: string,
designation: string,
}
}

相关内容

最新更新