Миксины, как определено в [PR], который вводит их, очень точны в отношении ограничения на конструктор.Это должно быть T extends new(...a: any[])=>any
.Поведение будет состоять в том, что параметры конструктора будут сохранены миксином, что, вероятно, то, что вы хотите:
class A
{
name: string;
}
function classMixin<T extends new(...a: any[])=>any>(baseclass: T)
{
return class extends baseclass
{
age: number;
}
}
let c = classMixin(A);
let cc = new c();