使用TypeScript在客户端和服务器之间共享模块

时间:2012-10-28 23:15:29

标签: module client typescript

我想编写一个可在node.js服务器和浏览器之间重用的可移植模块。

这是阻止我的模块化事物。我正在阅读http://caolanmcmahon.com/posts/writing_for_node_and_the_browser/并且它看起来很简单,但是让tsc生成这样的东西呢?

1 个答案:

答案 0 :(得分:5)

如果以CommonJS / AMD风格编写TypeScript(即每个文件都是模块),您可以要求编译器输出CommonJS(用于nodejs服务器)和AMD(用于浏览器,使用requires.js)。 / p>

所以你的模块文件看起来像这样(没有模块声明)

MyModule.ts

exports class MyClass {
    constructor (private id: number) {
    }

    // ... etc
}

您将使用以下编译器命令来获取输出...

对于nodejs或浏览器(推荐)

tsc --module umd MyModule.ts

对于nodejs

tsc --module commonjs MyModule.ts

对于浏览器(使用requires.js)

tsc --module amd MyModule.ts

编译输出的唯一区别是服务器代码将使用CommonJS import语句加载模块,浏览器代码将调用require。