10

有没有办法在 Typescript 中创建非匿名 AMD 模块。当我定义这样的模块时:

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 = {}));
})
4

3 回答 3

6

此功能最近通过此拉取请求添加到 TypeScript 主分支。声明 AMD 模块名称带有以下参考注释:

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

将生成以下 JavaScript:

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

于 2014-11-19T00:22:49.100 回答
2

正如您在第 1202 行的文件emiter.ts中看到的(搜索" var dependencyList = "),它没有实现。

你可以在 codeplex 上打开一个关于它的问题。

于 2012-10-18T15:22:46.780 回答
1

从 TS 0.9.x 开始,无法命名 AMD 模块。TS 编译器只会生成格式为的定义语句

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

TS 论坛上的讨论:https ://typescript.codeplex.com/discussions/451454

于 2013-08-01T22:19:12.177 回答