将泛型转换为类并返回其实例

时间:2019-05-24 22:03:32

标签: typescript

我想获得一个通用的类,创建一个实例并返回它。

我的代码是:

class Test {
    test1 : string;
}

function do_stuff<T>(arg1, arg2,...) {
    x : any = cast<T>();
    // now we save the class details to later associate it with the other params
}

function cast<T>() : T {
    return new T();      
}

测试类是一个例子,我可以获得各种类。

我该如何实现?

1 个答案:

答案 0 :(得分:0)

尽管上面问题的注释中有一个答案,但链接页面上的示例却忽略了通用类的构造函数的可能参数。

这是一个更完整的示例:

function cast<T>(t: new (...args) => T, ...args): T {
  return new t(...args);
}

console.log(cast(Date, 1558736768637));
console.log(cast(Object));
console.log(cast(Number, 55));
console.log(cast(Array, 10, 20, 30, 40));