gpt4 book ai didi

TypeScript 从泛型创建对象

转载 作者:搜寻专家 更新时间:2023-10-30 21:19:17 24 4
gpt4 key购买 nike

我想创建一个基于通用类型的对象,但无法弄清楚语法。我想要的是像这个人为的例子:

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 是将被推断为构造结果的类型。

关于TypeScript 从泛型创建对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50843810/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com