在全局类型定义文件

时间:2016-06-10 18:35:49

标签: meteor typescript typescript-typings

我正在尝试为meteor-files编写一个定义文件,这是一个暴露全局类FilesCollection的Meteor Atmosphere包。我认为,我的定义的开头应该是这样的:

declare class FilesCollection extends Mongo.Collection<any> {
    constructor(config?: FilesCollectionConfig)
}

但是,我不确定引用Mongo.Collection的最佳方法。以下是Meteor定义文件的摘录:

declare module Mongo {
  var Collection: CollectionStatic;
  interface CollectionStatic {
    new < T > (name: string, options ? : {
      connection ? : Object;
      idGeneration ? : string;
      transform ? : Function;
    }): Collection < T > ;
  }
  interface Collection < T > {
    ...
  }
  ...
}

declare module "meteor/mongo" {
  module Mongo {
    var Collection: CollectionStatic;
    interface CollectionStatic {
      new < T > (name: string, options ? : {
        connection ? : Object;
        idGeneration ? : string;
        transform ? : Function;
      }): Collection < T > ;
    }
    interface Collection < T > {
      ...
    }
    ...
  }
}

因此,在我的应用中的其他位置引用Mongo.Collection时,我会使用import { Mongo } from 'meteor/mongo';启动该文件。但是,我不确定如何在定义文件中执行相同的操作,因为我无法在全局定义中添加import语句。

如果我将Meteor添加为typings.json中的全局依赖项,则上述内容似乎可以在我的定义存储库typed-meteor-files中使用。但是,当我在我的应用中使用typed-meteor-files时,Mongo.Collection中的其他属性未被提取,我在导入的定义文件中收到错误Cannot find Mongo。我有点失落,不知道正确的做法是什么。谢谢!

0 个答案:

没有答案