我有自定义类和实现的接口:
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;
}
}
当我创建此类的实例时,我在类型为IFilterWeekScheduleClassShort
的构造函数中传递model
。
如何默认初始化对象model
如果将模型作为空对象传递:{}
?
因为当我调用方法:getModel()
时它会返回一个错误:没有属性type
。
检查其是否为空并设置它
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;
}
}
如何默认初始化对象
model
如果将模型作为空对象传递:{}
?
它不允许是空对象;你的接口清楚地表明它有三个必需的属性。
如果这些属性中的某些/全部是可选的,则可以在接口中的属性名称和:
之间?
将它们标记为可选,但如果它们不是可选的,则{}
传递到构造函数中是一个错误,并且 TypeScript 正确提出它。