Компиляция проекта TypeScript в один файл

Есть следующий код на 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 отдельно.


Ответы (0 шт):