Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/469.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 用另一个接口初始化一个接口_Javascript_Typescript - Fatal编程技术网

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

Javascript 用另一个接口初始化一个接口,javascript,typescript,Javascript,Typescript,实际上我有两个接口: export class Part { constructor( public id?: number, public part?: string, public type?: string ) {} } export class Session { constructor( public genre?: string, public ordre_interface?: nu

实际上我有两个接口:

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,
  
    ) {}

}
然后在main.ts文件中,导入这两个接口,并在数组中初始化I
newsession()
。但是对于part_a和part_b,它应该是另一个带有
类part
的空对象,我只得到了未定义的,或者我想得到一个空对象

EXOS = new Session();
这里,如果我得到了console.log EXOS=
[类型:未定义,id:未定义…部分a:未定义…]

或者对于
part\u a
,我想要一个带有
class part()的对象

为此,在构造函数中,我执行以下操作:

this.EXOS.part_a = new Part();
我是否可以使用一个新会话初始化EXOS,并在其中直接从初始化阶段为Part_a和Part_b创建一个新Part(),而不是在构造函数中进行初始化


谢谢

您可以在构造函数的声明中直接给出默认值

导出类零件{
建造师(
公共id?:编号,
公共部分?:字符串,
公共类型?:字符串
) {}
}
导出类会话{
建造师(
公共体裁?:字符串,
公共命令接口?:编号,
公共nb_系列?:编号,
公共id?:编号,
公共部分:部分=新部分(),
公共部分:部分=新部分(),
) {}
}

这些不是接口而是类。

如果不是构造函数,“初始化阶段”是什么?你考虑过默认值吗?我称之为初始化阶段是在代码开始时,在构造函数之前声明变量。下面的答案很完美。@Tom初始化阶段通常是构造函数中
{
}
之间的阶段。