我正在寻找基于泛型类型的对象,但无法弄清楚语法。我想要的是这样的示例:
myfunc<T>() : T[] {
let obj = new T();
let obj2 = new T();
return [obj, obj2];
}
该new T()
当然不会编译。在C#中,我将添加一个where T : new
约束以使其正常工作。TypeScript中的等效项是什么?
您必须记住,TypeScript类型(包括泛型)仅在编译时存在。另外,在JavaScript中,构造函数的类型与其构造的对象不同。
您可能正在寻找类似的东西(假设您的构造函数采用零参数):
function foo<T>(C: { new(): T }): T[] {
return [new C(), new C()];
}
class SomeClass {}
// here you need to pass the constructor function
const array = foo(SomeClass);
那里C
是您将在运行时使用的构造函数,并且T
该类型将作为构造结果而推断出来。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句