【发布时间】:2017-08-05 20:42:16
【问题描述】:
这是通用工厂的官方 Typescript 文档中的示例。在此示例中,构造函数不带参数。
function create<T>(c: {new(): T; }): T {
return new c();
}
我如何重写它,以便除了类型之外,工厂方法还接受其他参数并在调用它正在实例化的类的构造函数时传递它们?所以 return 语句看起来像这样:
return c(p1, p2);
我不清楚的是这个
{new(): T; }
实际上是一个接口,因为它定义了对提议的类的兼容性的评估条款,顺便还声明了构造函数签名。我将回答我自己的问题。
【问题讨论】:
-
您需要向
create函数传递一个类,然后将其实例化。p1和p2是什么? -
p1 和 p2 是工厂方法的任意附加参数,在调用它时将传递给构造函数。
-
该函数是通用的,是否总是使用具有需要 2 个参数的构造函数的类来调用它?这些论点的类型是什么?
-
@NitzanTomer 我刚刚了解了
{new(): T;}部分的含义,现在我认为我自己的问题太宽泛了。我将关闭它并继续研究。感谢您的尝试。 -
你可以尝试在你的问题中更好地解释你的问题,也许可以举一个你想要的例子,可以是伪代码
标签: generics typescript