打字稿:界面中的重载函数如何

时间:2016-05-20 18:12:56

标签: javascript typescript

我想在typescript中扩展本机javascript类型。这可以使用接口来声明扩展属性。 但是如何声明重载属性?

onload

谢谢

2 个答案:

答案 0 :(得分:2)

你很亲密。

interface HTMLElement {
    add(a:string): void;
    add(a:boolean): void;
}

Tipp:我总是在lib.d.ts文件中查看Microsoft的实现。在这种情况下,我输入(使用Visual Studio代码):document.addEventListener并查看(使用ctrl +左键单击)Microsoft如何创建界面。

答案 1 :(得分:0)

可接受的答案要求实现包含替代的 all 。您还可以允许接口实现重载的 any

interface HTMLElement {
    add: 
        ((a:string) => void) |
        ((a:boolean) => void);
}

class HTMLElementBool {
    add(a:boolean):void{
        // Assume bool
    }
}

class HTMLElementString {
    add(a:string):void{
        // Assume str
    }
}