不幸的是,@types/rickshaw
似乎是空的,所以我必须创建自己的声明文件。这是我目前的一个:
declare module 'rickshaw' {
export class Graph {
constructor(obj: any);
render: any;
}
}
让我使用方法render
并完全创建一个新实例。但是现在我想要从人力车中声明一个深层嵌套的方法。我当前的声明不允许我使用它,错误:
Rickshaw.Graph.Axis.Time({graph: newGraph})
(25,41): Property 'Axis' does not exist on type 'typeof Graph'.
我检查了方法的源代码,看起来像这样
Rickshaw.namespace('Rickshaw.Graph.Axis.Time');
Rickshaw.Graph.Axis.Time = function(args) {
//...
}
如何声明Rickshaw.Graph.Axis.Time
?
编辑:这是我的新申报文件。我现在正在遇到
'new' expression, whose target lacks a constructor signature implicitly has an any type
interface TimeArgs {
graph: typeof Graph;
ticksTreatment: string;
}
interface AxisInterface {
Time: (args: TimeArgs) => void;
}
export class Graph {
constructor(obj: any);
render: any;
static Axis: AxisInterface;
}
我尝试通过声明tyepof Graph
来修复它,因为graph
中的Time
参数是new Rickshaw.Graph
对象的一个实例,但我仍然得到错误。< / p>
答案 0 :(得分:1)
我不熟悉rickshaw
但您已添加Graph
,现在您可以在Axis
内添加Graph
,然后在Time
内添加Axis
{1}}:
declare module 'rickshaw' {
interface TimeArgs {
graph: any;
}
interface AxisInterface {
Time: (args: TimeArgs) => void;
}
export class Graph {
constructor(obj: any);
render: any;
static Axis: AxisInterface;
}
}
并根据需要添加任何其他类型/接口。