从TypeScript定义文件

时间:2015-12-04 23:51:15

标签: typescript definitelytyped

我正在尝试为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属性?

1 个答案:

答案 0 :(得分:2)

这似乎是导出整个AWS模块和define函数的方法:

declare module "vogels" {
  import AWS = require('aws-sdk');

  function define(modelName: String, config: any): void;

  export = { AWS, define }
}

模块中只能有一个export =,因此所有导出的变量都应该在该行中(当然,您可以将它分成多行)。不要导出任何其他东西,但只定义接口,变量,......实际导出稍后完成。