我们假设我们有一个通用工厂,可以创建从Fruit
派生的不同类,如下所示:
function factory<T extends BaseClass>(obj: {new() : T})
{
return new obj();
}
我们现在可以通过调用let yum = factory(Apple);
来创建新实例。
这一切都很好,但是我想要做的是允许派生类将更多参数添加到factory
,以便我可以像
let redApple = factory(Apple, "red");
但也喜欢
let clusterOfGrapes = factory(Grapes, 15);
我现在的问题是;有没有办法做到这一点?我希望能够在派生类中以某种方式设置额外参数。
我试图想出一些东西,但我一无所获。我也没有在谷歌上找到任何东西,但是我不是100%搜索什么,因为我不知道这是什么。