2014-09-10 31 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; 
    } 
    // ... 
} 

你也许可以添加更多的类型参数到这个定义使它更有用。