我有自定义类和已实现的接口:
interface IFilterWeekScheduleClassShort {
type: string;
id: number;
name: string;
}
export class FilterWeekScheduleClass extends Filter {
public constructor(public model: IFilterWeekScheduleClassShort) {
super(model);
}
public getModel() {
return this.model.type;
}
}
当我创建此类的实例时,我在类型为model
的构造函数中传递了IFilterWeekScheduleClassShort
。
默认情况下如何初始化对象model
如果将模型传递为空对象:{}
?
因为我在调用方法getModel()
时返回错误:没有属性type
。
答案 0 :(得分:-1)
默认情况下如何初始化对象
model
如果将模型传递为空对象:{}
?
不允许为空对象;您的界面明确表示它具有三个必需的属性。
如果其中某些/全部属性是可选的,则可以在界面的属性名和?
之间用:
标记为可选,但如果不是可选的,则传递{ {1}}进入构造函数是错误的,而TypeScript是正确的引发它。
答案 1 :(得分:-1)
检查其空值并将其设置
interface IFilterWeekScheduleClassShort {
type: string;
id: number;
name: string;
}
export class FilterWeekScheduleClass extends Filter {
public constructor(public model: IFilterWeekScheduleClassShort) {
if(model == null) model = new FilterWeekScheduleClassShort();
super(model);
}
public getModel() {
return this.model.type;
}
}