我一直在使用TypeScript工作,我们使用RequireJS作为我们的AMD加载器,并且工作得很好。我想将一些我个人的JS库,以打字稿的,我想知道 - 是否有可能使用打字稿内置的模块系统导出全球和使用要求定义/AMD如果最终用户恰好是使用它?通过TypeScript模块系统导出全局和定义?
我想避免打破现有用户的兼容性/强制他们进入要求。
我现有的JS文件布局为使得其限定一个全球性的,如果定义定义,定义TickerGraph:
var TickerGraph = (function() { …class code… });
if(typeof define == "function") {
define([], function() {
return TickerGraph;
});
}
在我的打字稿重写,我已经定义的模块类型制定出来作为UMD如下:
export = class TickerGraph { …class code… }
输出
(function (dependencies, factory) {
if (typeof module === 'object' && typeof module.exports === 'object') {
var v = factory(require, exports); if (v !== undefined) module.exports = v;
}
else if (typeof define === 'function' && define.amd) {
define(dependencies, factory);
}
})(["require", "exports"], function (require, exports) {
"use strict";
return (function() {
其中用于解检查罚款/出口,但确实不定义一个全球...
我已经试验和消除出口一起出口全球,但当然不再定义。任何帮助在这里将不胜感激。