Как объединить два класса в отдельных файлах в один модуль ES6, используя TypeScript? - PullRequest
0 голосов
/ 29 сентября 2018

У меня есть два файла, и у каждого файла есть класс:

//Hello.ts
export class Hello {
    private n: number = 100;
    private s: string = "Hi";
    public prints(s: string): void {
    console.log(s);
    }
}
//Foo.ts
import {Hello} from 'Hello'
export class Foo {
    public test(): void {
        let hello: Hello = new Hello();
    hello.prints("Hi");
    }
}

Когда я делаю tsc Hello.ts Foo.ts --target es6 --out module.js Я получаю Cannot compile modules using option 'out' unless the '--module' flag is 'amd' or 'system'. Как объединить два класса в отдельные файлы в один модуль ES6?

Я открыл вопрос с просьбой реализовать такую ​​функцию , но мне сказали, что она уже поддерживается.

1 Ответ

0 голосов
/ 30 сентября 2018

Реэкспорт членов

Вы можете сделать классы Foo и Hello доступными из одного модуля:

// main.ts
export { Hello } from "./Hello";
export { Foo } from "./Foo";

Теперь эти классы доступны из 2 модулей: ихисходный файл и main.

Использование накопительного пакета

Кроме того, как предполагает Берги в комментарии, вы можете использовать накопительный пакет с плагином для TypeScript: this или этот другой .

Скопление занимает несколько модулей и производит один модуль только с экспортом модуля точки входа.Вы можете протестировать онлайн с REPL (используя синтаксис JavaScript, потому что в REPL нет плагина для TypeScript).

...