获取模板的正式参数传递的类型的构造函数

时间:2014-08-12 11:57:48

标签: generics typescript

我想传递一个作为正式泛型参数传递的类型的构造函数。当我尝试按照

class Test {}

function g(x: new() => any): void {
    var y = new x();
}

function f<T>() {
    g(T);
}

f<Test>();

我收到编译错误(未知名称:T)和这个JS:

function f() {
    g(T);
}

看起来TS中的泛型仅用于指示类型检查器,即它们是phantom types。我需要这个来更改Netjs代码生成器,因此更改必须是函数f的本地更改。如何从泛型参数中获取类型的构造函数?

1 个答案:

答案 0 :(得分:1)

你不能将Type-arguments用作TypeScript中的代码(就像在C#中一样)因为它们是从JS中删除的(正如你已经注意到的)。只需将其作为正常参数传递。

您也可以看到typescript报告的错误。

you saw the error