如何使用TypeScript将单独文件中的两个类合并到一个ES6模块中?

时间:2018-09-29 17:17:15

标签: javascript typescript ecmascript-6 es6-modules

我有两个文件,每个文件都有一个类:

//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模块中?

我打开了询问implement such feature的问题,但有人说它已经受支持了。

1 个答案:

答案 0 :(得分:1)

再出口成员

您可以通过单个模块访问类FooHello

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

现在这些类可从2个模块中获得:它们的原始文件和main

使用汇总

此外,就像Bergi在评论中建议的那样,您可以将Rollup与TypeScript插件一起使用:this onethis other

汇总使用几个模块并仅使用入口点模块的导出来生产一个模块。您可以在线with the REPL进行测试(使用JavaScript语法,因为REPL没有TypeScript插件)。