我正在尝试为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
。我有点失落,不知道正确的做法是什么。谢谢!