如何通过接口初始化对象?



我有自定义类和实现的接口:

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 正确提出它。

最新更新