查看课程的属性

时间:2019-03-08 14:04:21

标签: angular typescript

我的打字稿类定义为:

export class MyModel {
  ID: number;
  TYPE_ID: number;
  RECOMMENDED_HOURS: number;
  UNASSIGNED_HOURS: number;
}

在另一个.ts文件中,我在组件中创建一个实例:

export class MyComponent implements OnInit {
   newModel: MyModel;
   ngOnInit() {
     this.newModel= new MyModel();
     this.newModel.RECOMMENDED_HOURS = 35;
     this.newModel.UNASSIGNED_HOURS = 28;
     debugger;
   }

设置小时后检查this.newModel时,看不到IDTYPE_ID属性,chrome调试器仅显示已设置的HOURS属性。无论是否设置它们,是否都能看到它们?

2 个答案:

答案 0 :(得分:2)

您必须手动将其实例化为undefined。

这可以用looking at the compiled code来解释:在TS中实例化一个变量使其在JS中实例化,无论其值如何。由于未设置变量的值为undefined,因此只需将其实例化为undefined即可。

class X {
    prop1: string;
}

class Y {
    prop1: string = undefined;
}

答案 1 :(得分:2)

在ts类中使用构造函数:

export class MyModel {
    ID: number;
    TYPE_ID: number;
    RECOMMENDED_HOURS: number;
    UNASSIGNED_HOURS: number;

    constructor() {
        this.ID      = 0; // or whatever you want, null, undefined...
        this.TYPE_ID = 0; // same as above...
    }
}

希望这会有所帮助!