Подтвердить что ты не робот

Создание не анонимных модулей AMD в TypeScript

Есть ли способ создания не анонимных модулей AMD в Typescript. Когда я определяю модуль следующим образом:

export module Bootstrapper {
  export function run() {
    var i = 0;
  }
}

код генерации:

define(["require", "exports"], function(require, exports) {
  (function (Bootstrapper) {
    function run() {
        var i = 0;
    }
    Bootstrapper.run = run;
  })(exports.Bootstrapper || (exports.Bootstrapper = {}));
})

Как я могу определить не анонимный модуль следующим образом:

define('bootstrapper', ["require", "exports"], function(require, exports) {
  (function (Bootstrapper) {
    function run() {
        var i = 0;
    }
    Bootstrapper.run = run;
  })(exports.Bootstrapper || (exports.Bootstrapper = {}));
})
4b9b3361

Ответ 1

Как вы можете видеть в файле emitter.ts в строке 1202 (выполнить поиск " var dependencyList = "), для него нет реализации.

Вы можете открыть проблему с codeplex об этом.

Ответ 2

Эта функция недавно была добавлена ​​в главный ветвь TypeScript через этот запрос на перенос. Объявление имени модуля AMD со следующим комментарием:

/// <amd-module name='MyModuleName'/>

создаст следующий JavaScript:

define("MyModuleName", ["require", "exports"], function (require, exports) { ... }

Ответ 3

С TS 0.9.x нельзя назвать модуль AMD. Компилятор TS генерирует только оператор определения в формате

define( ['dep1', 'dep2', ..., 'depN'], function( __dep1__, __dep2__, ..., __depN__ ) {... } );

обсуждение форумов TS: https://typescript.codeplex.com/discussions/451454