2016-05-20 96 views
0

如何重載函數我想在typescript中擴展原生的javascript類型。這可以使用一個接口來聲明擴展屬性。 但如何聲明重載的屬​​性?Typescript:接口

interface HTMLElement { 
    add:(a:string)=>void; // error: add is duplicate 
    add:(a:boolean)=>void; 
} 

HTMLElement.prototype.add = function (a):void{ 
    if(typeof a=="string"){ 

    } 
    else if(typeof a=="boolean"){ 

    } 
} 

class HTMLElement2 { 
    add(a:string):void; // ok 
    add(a:boolean):void; 
    add(a):void{ 
     if(typeof a=="string"){ 

     } 
     else if(typeof a=="boolean"){ 

     } 
    } 
} 

謝謝

回答

1

你接近。

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

提示:我總是看着微軟在lib.d.ts文件中的實現。在這種情況下,我鍵入(使用Visual Studio代碼):document.addEventListener並查看(使用Ctrl +左鍵單擊)Microsoft如何創建界面。

+0

我不知道爲什麼我沒有嘗試過。很明顯。 – Baud