我正在编写一个小型的打字稿程序,该程序需要加载模块才能在浏览器中工作,而不是在节点服务器上工作。我是TS新手,因此请原谅任何错误或缺乏理解。
在我的builder文件夹中的Main.JS文件中,我有4个模块需要在运行时加载才能正确执行程序,它们声明如下:
Object.defineProperty(exports, "__esModule", { value: true });
var context_1 = require("./context");
var stratCommunity_1 = require("./stratCommunity");
var stratAggressive_1 = require("./stratAggressive");
var stratSemi_1 = require("./stratSemi");
但是,我收到上述错误。
我试图按照以下方式声明模块,我认为这正是文档说明的方式。
define(function () {
return {
'context_1': './context',
'stratCommunity_1': './stratCommunity',
'stratAggressive_1': './stratAggressive',
'stratSemi_1': './stratSemi'
};
});
我也尝试过,尝试定义模块并传入require库。
define(function (require) {
return {
'context_1': require('./context'),
'stratCommunity_1': require('./stratCommunity'),
'stratAggressive_1': require('./stratAggressive'),
'stratSemi_1': require('./stratSemi')
};
});
当我尝试使用任何一种解决方案时,都会收到以下错误消息。
“未定义context_1”
我已将示例最小化,请注意,这是已编译的JS文件。
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
define(function (require) {
return {
'context_1': require('./context'),
'stratAggressive_1': require('./stratAggressive')
};
});
var App = /** @class */ (function () {
function App() {
}
App.main = function () {
var context = new context_1.Context(new stratAggressive_1);
context.executeStrat('Clown', 'mad');
context.display();
};
return App;
}());
App.main();
在这个简单的示例中,我仍然收到未定义context_1的信息。
我注意到,当我编译TSC时,我所有的变量名都被附加到它们的“ _1”上,并且我认为这是编译行为的一部分。
任何反馈都将不胜感激,因为我也将其带给高级讲师,他们告诉我复制过去的工作解决方案,我认为这毫无意义。