用另一个接口初始化一个接口

时间:2020-11-09 09:42:15

标签: javascript typescript

实际上我有2个界面:

export class Part {
    constructor(
        public id?: number,
        public part?: string,
        public type?: string

    ) {}
}

export class Session {
    constructor(
      public genre?: string,
      public ordre_interface?: number,
      public nb_serie?: number,
      public id?: number,
      public part_a?: Part,
      public part_b?: Part,
  
    ) {}

}

然后在我的主.ts文件中,导入这两个接口,并在数组中初始化new Session()。但是对于part_a和part_b应该是另一个带有class Part的空对象,我只是未定义,或者我想得到一个空对象。

EXOS = new Session();

如果我在console.log EXOS中获得= [genre: undefined, id: undefined... part_a: undefined...]

或者对于part_a,我想要一个class Part()的对象

为此,在我的构造函数中:

this.EXOS.part_a = new Part();

我可以通过一个新的会话初始化EXOS,并在其内部直接从初始化阶段为part_a和part_b新建一个Part()而不是在构造函数中进行此操作吗?

谢谢

1 个答案:

答案 0 :(得分:1)

您可以直接在构造函数的声明中提供默认值。

export class Part {
    constructor(
        public id?: number,
        public part?: string,
        public type?: string

    ) {}
}

export class Session {
    constructor(
      public genre?: string,
      public ordre_interface?: number,
      public nb_serie?: number,
      public id?: number,
      public part_a: Part = new Part(),
      public part_b: Part = new Part(),
  
    ) {}

}

那些不是接口而是类。