restivus.d.ts的TypeScript定义

时间:2015-10-07 18:05:59

标签: javascript meteor typescript

我可以看到我所指的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它。谢谢!

1 个答案:

答案 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: {});
}