在TypeScript中创建非匿名AMD模块

时间:2012-10-18 13:50:06

标签: typescript

有没有办法在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 = {}));
})

3 个答案:

答案 0 :(得分:6)

此功能最近通过this pull request添加到TypeScript主分支。声明AMD模块名称具有以下参考注释:

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

将生成以下JavaScript:

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

答案 1 :(得分:2)

正如您在第1202行的emitter.ts文件中所见(搜索" var dependencyList = "),没有实现。

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

答案 2 :(得分:1)

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

的define语句
define( ['dep1', 'dep2', ..., 'depN'], function( __dep1__, __dep2__, ..., __depN__ ) {... } );
在TS论坛上讨论:https://typescript.codeplex.com/discussions/451454