На своем веб-сайте я хочу импортировать FancyModule
с помощью SystemJS, чтобы я мог создавать экземпляры классов, которые этот модуль экспорт.
Итак, чего я хочу добиться, так это (на веб-сайте, совместимом с ECMAScript 2015):
SystemJS.import('MyFancyModule').then(function(MyFancyModule) {
var myFancyInstance = new MyFancyModule.MyFancyClass('Test');
console.log(myFancyInstance.text);
});
К сожалению, я получаю следующую ошибку:
TypeError: MyFancyModule.MyFancyClass не является конструктором (…)
Вот мой модуль TypeScript:
export module MyFancyModule {
export class MyFancyClass {
public text: string;
constructor(text: string) {
this.text = text;
}
}
}
А это моя настройка компилятора TypeScript (tsconfig.json):
{
"compilerOptions": {
"module": "system",
"moduleResolution": "node",
"outFile": "dist/browser/MyFancyModule.js",
"rootDir": "src/ts",
"target": "es5"
}
}
Который компилирует мой модуль TypeScript в:
System.register("MyFancyModule", [], function(exports_1, context_1) {
"use strict";
var __moduleName = context_1 && context_1.id;
var MyFancyModule;
return {
setters: [],
execute: function() {
(function(MyFancyModule) {
var MyFancyClass = (function() {
function MyFancyClass(text) {
this.text = text;
}
return MyFancyClass;
}());
MyFancyModule.MyFancyClass = MyFancyClass;
})(MyFancyModule = MyFancyModule || (MyFancyModule = {}));
exports_1("MyFancyModule", MyFancyModule);
}
}
});
Мне кажется, что MyFancyModule
экспортируется правильно, но я не знаю, почему я не могу получить доступ к файлу MyFancyClass
.