相同的变量名称和方法TypeScript

时间:2014-12-05 10:31:59

标签: javascript datatables typescript jquery-datatables

我想为DataTables 1.9.4创建一个定义文件,但我不知道如何处理以下API。有一个与变量同名的方法。例如:

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

我会这样做:

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

但这会带来“重复标识符”错误......

顺便说一下。该定义已存在,但适用于旧API

2 个答案:

答案 0 :(得分: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');
    }
}

答案 1 :(得分:0)

非常简单:

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

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