4

我有以下问题示例。在 TypeScript 0.9 中,我似乎能够调用重载方法的最终签名:

class Test {
    method(...names: string[]) : void;
    method(names: string[]) : void {

    }
}

var x= new Test();

x.method('One', 'Two', 'Three');
x.method(['One', 'Two', 'Three']);

在 TypeScript 0.8.x 中,您必须指定第三个签名,因此:

class Test {
    method(...names: string[]) : void;
    method(names: string[]) : void;
    method(names: any) : void {

    }
}

var x= new Test();

x.method('One', 'Two', 'Three');
x.method(['One', 'Two', 'Three']);

最终签名不应该被隐藏吗?(因为它最有可能包含带有any类型等的过度概括的签名)。

4

1 回答 1

2

0.8.x 的行为是正确的;我们现在在开发分支中修复了 0.9 中的回归。实现签名确实永远不可见。

于 2013-06-11T23:31:01.947 回答