如何创建跨多个文件的TypeScript Nodejs模块

时间:2013-09-20 05:57:00

标签: node.js typescript

我正在尝试使用TypeScript创建一个带有单个命名空间的Node.js模块。我需要将模块的类放在单独的文件中,并相互引用。我还需要这个模块来利用其他节点模块。但是,如果我理解正确,如果命名空间包含在单个文件中,或者命名空间不使用外部模块,TypeScript仅支持命名空间。

有些人提出使用后期构建工具来使最终模块工作,这很好,但没有解决TypeScript在开发过程中组合跨文件名称空间和导入时所引发的所有错误。

最接近的解决方案是每个文件创建一个模块,并创建一个互相导入的网络吗?

1 个答案:

答案 0 :(得分:1)

我发现对模块依赖性最有效的方法是始终使用源引用,例如:

/// <reference path="other.ts" />

如果您使用语言级导入/模块,则无法从tsc生成单文件输出,我已经使用require作为函数等等。

这似乎是same solution chosen by the TypeScript developers themselves(搜索“require(”))。正如silentorb的评论所示,您可以将require函数声明为以下某些变体(或使用{{ 3}}):

declare function require(name: string): any;

请注意,在TS论坛(DefinitelyTyped)上,TS中的整个模块化主题经常有很多讨论。