1
我有一个带有不同外部模块的TypeScript项目。例如,我导入与下面的语句的模块,它工作Typescript - 加载外部模块并转换为单个JS文件
import myExternalModule = module("http://mylocalapphost/tsmodules/mod1");
var myObject = new myExternalModule.importedInteface('var1', 'var2');
当我转换的.ts与TSC到.js文件,我只得到这样的:
var myExternalModule = require("http://mylocalapphost/tsmodules/mod1");
但我需要在这个.js-File中执行模块,就像内部模块一样。我该怎么做?
这是两个文件(坏命名对不起......):
// mod1.ts (at a local server)
export class importedClass {
private prVar: number = 0;
constructor(public var1: string, public var2: string){}
public func1(km: number){
this.prVar += km;
}
public getPrVar(){
return this.prVar;
}
}
// main.ts
import myExternalModule = module(" path to mod1 ");
var myObject = new myExternalModule.importedClass('string var1', 'string var2');
myObject.func1(20);
至于结果我想一个的.js文件带所有导入模块/班等等,因为应用运行在服务器上(没有连接到本地服务器,模块放置在哪里),如下所示:
var importedClass = (function() {
function importedClass(var1, var2) {
this.var1 = var1;
this.var2 = var2;
this.prVar = 0;
}
importedClass.prototype.func1 = function (km) {
this.prVar += km;
};
importedClass.prototype.getPrVar = function() {
return this.prVar;
};
return importedClass;
})();
var myObject = new importedClass('string var1', 'string var2');
myObject.func1(20);
我认为我的问题不清楚。我在外部文件中有一些模块(例如在本地主机上),并且我想在.js文件中导入模块,因为应用程序不应该在运行时加载模块。 – user1829815
在这种情况下,我会使用'/// <引用...'而不是导入语句,因为导入语句用于在运行时加载。通过引用,你可以捆绑脚本或者让TypeScript编译器捆绑它们:'tsc --out combined.js File1.ts File2.ts' – Fenton