我想为DataTables 1.9.4创建一个定义文件,但我不知道如何处理以下API。有一个与变量同名的方法。例如:
state();
state.clear();
state.loaded();
我会这样做:
interface API {
//...
state(): any;
state: StateInterface;
//...
}
interface StateInterface {
clear(): API;
loaded(): any;
}
但这会带来“重复标识符”错误......
顺便说一下。该定义已存在,但适用于旧API
答案 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();