2014-09-10 32 views
1

我正在爲ramda寫一個d.ts文件。該庫有一個功能mapObjmapObj.idx功能的手寫體定義

interface RamdaStatic { 
... 
    mapObj(
    fn: Function, 
    obj: any 
): any; 
    ... 
} 

我的問題是如何添加具有類似類型def的mapObj.idx?我知道answer,但這需要一個單獨的界面,我想避免這種情況。

回答

2

不要說「mapObj是一個功能」的,說:「mapObj可以這樣調用一個函數,它有附加屬性」:

interface RamdaStatic { 
    // ... 
    mapObj: { 
    (fn: (value: any) => any, obj: any): any; 
    idx: (fn: (value: any, key: string, obj: any) => any, obj: any) => any; 
    } 
    // ... 
} 

你也許可以添加更多的類型參數到這個定義使它更有用。