无法使用扩展另一种类型

时间:2015-08-31 23:33:28

标签: typescript

我有以下代码:

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”,一切似乎都有效。

1 个答案:

答案 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
    {
    }
}