我正在尝试为Vogels库创建一个定义文件。此库包装AWS SDK,因此它还包含一个导出整个AWS SDK的属性。
declare module "vogels" {
import AWS = require('aws-sdk');
export function define(modelName: String, config: any): void;
export var AWS: AWS; /* THIS LINE DOESN'T TRANSPILE */
}
这个库使用如下:
import vogels = require('vogels');
vogels.AWS.config.update({region: region});
var model = vogels.define('test', {
..
}
});
不幸的是,从“vogels”模块导出AWS属性不起作用,因为AWS不被视为类型。如何在不复制模块中的整个AWS定义的情况下导出AWS属性?
答案 0 :(得分:2)
这似乎是导出整个AWS模块和define
函数的方法:
declare module "vogels" {
import AWS = require('aws-sdk');
function define(modelName: String, config: any): void;
export = { AWS, define }
}
模块中只能有一个export =
,因此所有导出的变量都应该在该行中(当然,您可以将它分成多行)。不要导出任何其他东西,但只定义接口,变量,......实际导出稍后完成。