TypeScript使用必需的定义编译AMD模块

Pet*_*StJ 8 requirejs typescript

在AMD中(在requirejs中实现),可以定义要包含为依赖项的模块,例如:

define(['require','exports'], function(require, exports) {
  var externalDep = require('path/to/depModule');

  // Use the module somewhere.
});
Run Code Online (Sandbox Code Playgroud)

我已经尝试了--module amd,它正确输出了requirejs可用的AMD模块.

是否可以在TypeScript源文件的源代码中定义依赖关系,转换为类似上面的示例?

moh*_*azy 13

你需要"导出"你的模块;

export module depModule { 
    export class A { 
    }
}
Run Code Online (Sandbox Code Playgroud)

这将转换为如下所示的JavaScript代码:

define(["require", "exports"], function(require, exports) {
    (function (depModule) {
        var A = (function () {
            function A() { }
            return A;
        })();
        depModule.A = A;
    })(exports.depModule || (exports.depModule = {}));
})
Run Code Online (Sandbox Code Playgroud)

然后使用"import"消耗它们:

module otherModule { 
    import  depModule = module('depModule');
    var a = new depModule.depModule.A();
}
Run Code Online (Sandbox Code Playgroud)

您需要使用--module AMD为编译器指定模块代码生成的类型.

  • @Eric - 我建议你安装Mads Kristensen的'Web Essentials 2012'扩展.在扩展的选项页面中,您可以指定应使用AMD选项编译TypeScript文件.你可以在这里下载/找到它:http://visualstudiogallery.msdn.microsoft.com/07d54d12-7133-4e15-becb-6f451ea3bea6 (7认同)