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文件中,导入这两个接口,并在数组中初始化Inewsession()
。但是对于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初始化阶段通常是构造函数中{
和}
之间的阶段。