当使用同一文件中定义的AMD时,我有一个模块注入另一个模块的问题。我将TypeScript代码与AMD一起转换为ES5,并转换为单个文件。当我尝试将其输出到每个模块的文件然后使用r.js捆绑时,我遇到的问题完全相同。这是一个示例:
define("module1", ["require", "exports"], function (require, exports) {
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
var Module1= /** @class */ (function () {
function Module1(prop) {
this.prop= prop;
}
return Module1;
}());
exports.Module1= Module1;
});
define("module2", ["require", "exports", "module1"], function (require, exports, module1_1) {
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
var Module2= /** @class */ (function (_super) {
__extends(Module2, _super);
function Module2(prop2, prop) {
var _this = _super.call(this, prop) || this;
_this.prop2 = prop2;
return _this;
}
return Module2;
}(module1_1.Module1));
exports.Module2 = Module2;
});
__ extends 在文件的开头定义。问题是 module2 代替了 module1 而获得了 undefined 。有趣的是,当在 module2 定义中时, exports 对象具有 Module1 属性。
任何人都可以帮助并解释这种行为的原因是什么