Typescript 类型脚本类型交集和构造函数

Typescript 类型脚本类型交集和构造函数,typescript,types,type-conversion,Typescript,Types,Type Conversion,我想从调用构造函数的片段中创建复合类型。我如何做或模仿这一点?我无法在InImplementation中调用super(),也无法使用extend,因为派生类的构造函数必须包含“super”调用。我不知道如何直接创建person类型的对象 类栏{ j:数量; 构造函数(){ 这是j=20; } } baz类{ i:编号; 构造函数(){ 这个。i=10; } } 人员类型=酒吧和酒吧; 类p实现person{ i:编号; j:数量; 构造函数(){} } 设_p=new p(); alert(

我想从调用构造函数的片段中创建复合类型。我如何做或模仿这一点?我无法在InImplementation中调用super(),也无法使用extend,因为派生类的构造函数必须包含“super”调用。我不知道如何直接创建person类型的对象

类栏{
j:数量;
构造函数(){
这是j=20;
}
}
baz类{
i:编号;
构造函数(){
这个。i=10;
}
}
人员类型=酒吧和酒吧;
类p实现person{
i:编号;
j:数量;
构造函数(){}
}
设_p=new p();

alert(_p.i)//未定义,希望它为10
如果您的TypeScript目标语言设置在es6以下,则类将编译为函数。如果您对依赖于类在运行时环境中的实际实现方式的代码感到满意,则可以直接在实现交集的构造函数中调用它们:

class p implements person {
  i: number;
  j: number;
  constructor() {
    bar.call(this);
    baz.call(this);
  }
}

不幸的是,这不适用于真正的es6类-如果没有
new
,就无法调用类构造函数。您必须实现类似mixin composition的功能,请参见的答案以获取示例。

如果您的TypeScript目标语言设置在es6以下,则类将编译为函数。如果您对依赖于类在运行时环境中的实际实现方式的代码感到满意,则可以直接在实现交集的构造函数中调用它们:

class p implements person {
  i: number;
  j: number;
  constructor() {
    bar.call(this);
    baz.call(this);
  }
}

不幸的是,这不适用于真正的es6类-如果没有
new
,就无法调用类构造函数。您必须实现类似mixin composition的功能,请参见的答案以获取示例。

我如何在p类中省略这个bar/baz引用?我希望它是独立于组成的,所以它不应该知道他的部分。如果我理解正确,你想声明交集类型,然后有一个实现,它只引用交集类型,而不是它的成分,但以某种方式实现了成分必须提供的一切?那是不可能的。我怎么能在p类中省略这个bar/baz引用?我希望它是独立于组成的,所以它不应该知道他的部分。如果我理解正确,你想声明交集类型,然后有一个实现,它只引用交集类型,而不是它的成分,但以某种方式实现了成分必须提供的一切?那是不可能的。