我在后端有一对一的关系,而在 Angular 中,我有两个模型:Child
并且ChildPermission
都是独立的,没有扩展。
我想在ChildPermission
模型中实例化模型,Child
但它给出了一个未定义的错误。
儿童班:
import {ChildPermission} from './childpermission';
export interface Child {
id: number;
class_id: number;
f_name: string;
l_name: string;
permission: ChildPermission;
}
儿童权限:
export interface ChildPermission {
id: number;
walking: boolean;
biking: boolean;
player_water: boolean;
go_parks: boolean;
go_fields: boolean;
using_photos: boolean;
}
在组件中,我尝试了以下操作:
export class ChildAddComponent implements OnInit {
child: Child = {} as Child;
constructor() {
}
ngOnInit() {
this.child.permission.walking = true;
console.log(this.child);
}
}
但它在控制台中返回以下内容:
类型错误:未定义不是对象(评估“this.child.permission.walking = true”)
如果您使用接口方法,则需要分配所有必需的属性,如下所示:
child: Child = {
id: 1,
class_id: 1,
...
permission: {
id: 1,
walking: false,
...
}
}
如果您将其切换为课堂方法,请按照以下方式进行操作。
child = new Child();
在 Child 类中,像这样启动权限。
permission = new ChildPermission();
您可以参考许多资源以了解有关 TypeScript 中接口和类之间区别的更多信息。例如https://toddmotto.com/classes-vs-interfaces-in-typescript
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句