我正在尝试使用TypeScript创建一个带有单个命名空间的Node.js模块。我需要将模块的类放在单独的文件中,并相互引用。我还需要这个模块来利用其他节点模块。但是,如果我理解正确,如果命名空间包含在单个文件中,或者命名空间不使用外部模块,TypeScript仅支持命名空间。
有些人提出使用后期构建工具来使最终模块工作,这很好,但没有解决TypeScript在开发过程中组合跨文件名称空间和导入时所引发的所有错误。
最接近的解决方案是每个文件创建一个模块,并创建一个互相导入的网络吗?
答案 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中的整个模块化主题经常有很多讨论。