【发布时间】:2014-06-18 16:58:40
【问题描述】:
给定一个带有静态factory 方法的泛型类Foo<T>:
class Foo<T>
{
public static factory(item: T): Foo<T>
{
return null;
}
}
为什么不编译?
var f = Foo<number>.factory(1);
错误信息:
错误 TS2069:参数列表必须遵循泛型类型参数列表。 '(' 预期。
这确实可以编译:
var f = Foo<number>().factory(1);
为什么需要括号?这是在调用构造函数吗?
【问题讨论】:
-
不提在顶部代码块中出现编译错误这一事实似乎很奇怪(在静态方法中使用包含类中的类型参数是非法的)
-
@RyanCavanaugh,实际上我正在进行大型重构,WebStorm 报告了错误消息。他们对 TypeScript 的支持还可以,但不是那么全面。一定是错过了你所说的错误,或者我给出的错误掩盖了你描述的错误。
标签: typescript