Перекрестные ссылки с расширенными классами в TypeScript
нашел странную ошибку
Если у вас есть два класса в разных файлах, и, например, класс B расширяет класс Аи класс А имеет переменную типа BTypeScript компилируется в неправильном порядке с помощью команды --out main.js (когда вы компилируете весь проект в один файл). Результаты заказа Wrond, которые javascript выдает ошибку:Uncaught TypeError: Невозможно прочитать свойство 'прототип' неопределенного Это потому, что класс B раньше в коде, чем Aи он хочет этим пользоваться.
Вот самый простой пример:
A.ts
///
class A
{
public b: B;
constructor()
{
}
init()
{
this.b=new B();
}
}
B.ts
///
class B extends A
{
constructor()
{
super();
}
}
app.ts
///
var a: A=new A();
a.init();
Сгенерированный main.js
var __extends = this.__extends || function (d, b) {
function __() { this.constructor = d; }
__.prototype = b.prototype;
d.prototype = new __();
};
var B = (function (_super) {
__extends(B, _super);
function B() {
_super.call(this);
}
return B;
})(A);
var A = (function () {
function A() {
}
A.prototype.init = function () {
this.b = new B();
};
return A;
})();
var a = new A();
a.init();
//@ sourceMappingURL=main.js.map
Есть ли обходной путь? Я