打字稿显示不能设置undefined的属性,如何解决呢?

时间:2016-05-03 06:58:17

标签: javascript angularjs typescript

我有一个界面:

interface IGroup{
    groupNumber:number;
    groupMembers:Array<ISeatPlanGroup>;
    totalStudentNumber:number;
  }

当我尝试在groupNumber中分配一个值时,编译器说,不能设置undefined的属性。

              var group: IGroup;
              group.groupNumber = groupArr[i].groupNo;
              group.groupMembers=[];
              group.groupMembers.push(groupArr[i]);
              group.totalStudentNumber = 0;
              group.totalStudentNumber+=groupArr[i].studentNumber;

我也尝试初始化

group.groupNumber = 0;

仍然有错误。怎么解决?

2 个答案:

答案 0 :(得分:1)

通过提供类型,您无需初始化对象以初始化对象

var group: any= {}

答案 1 :(得分:1)

var group: IGroup;没有创建任何对象,它只是说明了哪种类型的引用group可以容纳。 group以值undefined开始。

您必须将对象分配给实现group的{​​{1}}。比如说你有一个实现IGroup的{​​{1}}类。然后你就这样做了:

Group

当然,您的实际班级名称可能不是IGroup,而实际班级的构造函数可能需要参数,但从根本上说,问题是您还没有为{{{{{{ 1}}。