Модуль экспорта из файла определения TypeScript

Я пытаюсь создать файл определения для библиотеки 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', {
  ..
  }
});

К сожалению, экспорт свойства AWS из модуля vogels не работает, потому что AWS не считается типом. Как я могу экспортировать свойство AWS без репликации всех определений AWS в моем модуле?


person Ramon de Klein    schedule 04.12.2015    source источник


Ответы (1)


Кажется, это способ экспортировать весь модуль AWS и функцию define:

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

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

  export = { AWS, define }
}

В модуле может быть только один export =, поэтому все экспортируемые переменные должны находиться в этой строке (конечно, вы можете разделить ее на несколько строк). Больше ничего не экспортируйте, а только определяйте интерфейсы, переменные ... Фактический экспорт выполняется позже.

person Ramon de Klein    schedule 05.12.2015