Есть следующий код на TypeScript:
class A {
a: string;
b: number;
constructor() {
this.a = 'str1';
this.b = 20;
}
}
class B extends A {
c: string;
constructor() {
super();
this.c = 'str2';
}
}
var a: B = new B;
console.log(a);
Компиляцию могу запускать и напрямую через "tsc", и при помощи сборщика, все работает нормально. Следующий шаг - хочу разделить классы, записав их в разных модулях.
Модуль a.ts:
export class A {
a: string;
b: number;
constructor() {
this.a = 'str1';
this.b = 20;
}
}
Модуль index.ts:
import {A} from './a';
class B extends A {
c: string;
constructor() {
super();
this.c = 'str2';
}
}
var a: B = new B;
console.log(a);
Тут и начинаются проблемы. При компиляции "tsc" в браузере выдается ошибка:
exports is not defined
При использовании сборщика - если хочу скомпилировать результат в один файл, то ставлю в "tsconfig.json" параметр "module": "system" - появляется такая ошибка:
System is not defined
Если ставлю "module": "amd" - ошибка такая:
define is not defined
Если ставлю "module": "commonjs", то параметра "outFile" он уже не воспринимает, компилирует все ts-файлы отдельно. При подключении этих файлов к проекту браузер выдает следующую ошибку:
exports is not defined
Подскажите правильную последовательность действий. Желательно настроить сборку проекта в один js-файл, чтобы не подключать каждый модуль в html отдельно.