1

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

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

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

4

1 回答 1

1

我发现最适合我的模块依赖项是始终使用源引用,例如:

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

由于如果您使用语言级导入/模块,则无法从 tsc 生成单文件输出,因此我采用了 using requireas a function 等等。

这似乎与TypeScript 开发人员自己选择的解决方案相同(在那里搜索“require(”)。正如silentorb 的评论所建议的那样,您可以将该require函数声明为以下的一些变体(或使用DefinitelyTyped):

declare function require(name: string): any;

请注意,在 TS 论坛(最近的一个示例)上,经常有很多关于 TS 中的整个模块化主题的讨论。

于 2013-09-20T14:53:16.493 回答