我可以看到我所指的TypeScript定义here。我正在使用名为restivus的Meteor包。要使用它,你基本上就像这样调用构造函数:
var Api = new Restivus({
useDefaultAuth: true,
prettyJson: true
});
使用当前定义文件会导致一个错误:Cannot use 'new' with an expression whose type lacks a call or construct signature
。目前的定义:
declare module Restivus {
export function configure(o: {})
export function addCollection<T>(collection: Mongo.Collection<T>);
export function addRoute<T>(path: string, conf: {}, routes: {});
}
没有构造函数,我遇到的所有定义都使用了一个类来调用new或constructor。我如何实现Restivus,所以我不必declare var
它。谢谢!
答案 0 :(得分:1)
您也可以简单地添加类声明。模块声明将基于类声明构建。请参阅Merging Modules with Classes, Functions, and Enums。
declare class Restivus {
constructor (options?: any);
}
declare module Restivus {
export function configure(o: {})
export function addCollection<T>(collection: Mongo.Collection<T>);
export function addRoute<T>(path: string, conf: {}, routes: {});
}
修改强>
与他们的示例一起使用的新定义。
declare class Restivus {
constructor (options?: any);
public addCollection<T>(collection: Mongo.Collection<T>);
public addRoute<T>(path: string, conf: {}, routes: {});
}