我有以下代码:
public static testMethod<T extends MyModule.ITest>(fromArray: T): T;
public static testMethod<T extends MyModule.ITest>(fromArray: T[]): T[];
public static testMethod<T extends MyModule.ITest>(fromArray: (T|T[])): (T|T[])
{
return null;
}
module MyModule
{
export interface ITest
{
}
}
Typescript抱怨“重复标识符'testMethod'”和“函数'testMethod'在无体函数的返回类型上声明了一个非void返回类型,但没有返回表达式”。如果我从泛型类型中删除“extends ITest”,一切似乎都有效。
答案 0 :(得分:0)
事实证明问题出在&#34; MyModule.ITest&#34;。如果我使用&#34; import ITest = MyModule.ITest;&#34;然后说&#34;扩展ITest&#34;而不是&#34;扩展MyModule.ITest&#34;,它编译得很好。
import ITest = MyModule.ITest;
module MyModule2
{
public static testMethod<T extends ITest>(fromArray: T): T;
public static testMethod<T extends ITest>(fromArray: T[]): T[];
public static testMethod<T extends ITest>(fromArray: (T|T[]): (T|T[])
{
return null;
}
}
module MyModule
{
export interface ITest
{
}
}