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