首页 > 解决方案 > 如何通过接口初始化对象?

问题描述

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

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;
  }

}

当我创建此类的实例时,我传入modeltype 的构造函数IFilterWeekScheduleClassShort

默认情况下如何初始化对象model如果将模型传递为空对象:{}

因为当我调用 method:getModel()它返回一个错误: no property type

标签: typescript

解决方案


默认情况下如何初始化对象model如果将模型传递为空对象:{}

不允许为空对象;您的界面清楚地表明它具有三个必需的属性。

如果这些属性中的一些/全部是可选的,您可以?在属性名称和:接口中使用 a 将它们标记为可选,但如果它们不是可选的,则传递{}给构造函数是错误的,TypeScript 可以正确引发它.


推荐阅读