2014-12-05 74 views
0

我想爲DataTables 1.9.4創建定義文件,但我不知道如何處理以下API。有一個與變量名稱相同的方法。例如:相同的變量名稱和方法TypeScript

state(); 
state.clear(); 
state.loaded(); 

我會做這樣的:

interface API { 
    //... 
    state(): any; 
    state: StateInterface; 
    //... 
} 
interface StateInterface { 
    clear(): API; 
    loaded(): any; 
} 

但是這會帶來 「重複的標識符」 錯誤...

順便說一句。該定義已經存在,但對於舊的API

回答

0

確實很簡單:

interface State{ 
    ():any; 
    clear:()=>any; 
    loaded:()=>any; 
} 
declare var state:State; 

state(); 
state.clear(); 
state.loaded(); 
+0

酷,沒有名字的方法使事情。謝謝 :-) – Wolfy2k 2014-12-05 12:04:34

0

您可以使用合併模塊來聲明這一點,這裏是一個環境版本:

declare function state(): void; 
declare module state { 
    export function clear(): void; 
    export function loaded(): void; 
} 

這可以讓你把所有這些方法:

state(); 
state.clear(); 
state.loaded(); 

如果你正在尋找一個具體的版本(而不是周圍的聲明),這裏有一個例子:

function state(): void { 
    console.log('state'); 
} 

module state { 
    export function clear(): void { 
     console.log('clear'); 
    } 

    export function loaded(): void { 
     console.log('loaded'); 
    } 
} 
相關問題