【问题标题】:Same variable name and method TypeScript相同的变量名和方法 TypeScript
【发布时间】:2014-12-05 10:31:58
【问题描述】:
我想为 DataTables 1.9.4 创建一个定义文件,但我不知道如何处理以下API。有一个与变量同名的方法。例如:
state();
state.clear();
state.loaded();
我会这样做:
interface API {
//...
state(): any;
state: StateInterface;
//...
}
interface StateInterface {
clear(): API;
loaded(): any;
}
但这会带来“重复标识符”错误...
顺便说一句。该定义已经存在,但对于旧 API
【问题讨论】:
标签:
javascript
datatables
typescript
jquery-datatables
【解决方案1】:
真的很简单:
interface State{
():any;
clear:()=>any;
loaded:()=>any;
}
declare var state:State;
state();
state.clear();
state.loaded();
【解决方案2】:
你可以使用一个合并的模块来声明它,这里是一个环境版本:
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');
}
}