使用 Visual Studio 的 Node.JS 工具在多个 TypeScript 文件之间共享 类

Sharing classes between multiple TypeScript files using Node.JS Tools for Visual Studio

我目前正在使用 Node.JS 工具 Visual Studio (NTVS) 用 TypeScript 编写一个 Node.JS 项目。我有一些 classes 和枚举分布在我的项目中的 3 或 4 个文件中。我现在正尝试使用我的主应用程序文件中那些文件中定义的 classes。从我之前使用 Node 的工作中,我知道如果我使用文本编辑器和命令行编译器,我通常需要 require 调用来相互导入 file/class。但是,如果我在我的项目中打开任何 TypeScript 文件并开始键入在不同文件中定义的 class 的名称,Visual Studio 会显示 class 名称及其成员的 IntelliSense 自动完成。这让我觉得 NTVS and/or TypeScript 配置自动使我的所有 classes 在项目范围内可用。但是如果我单击 'run' 按钮,错误将打印到控制台,因为 Node 在运行时找不到引用的 classes。

这种行为让我相信 IntelliSense 实际上并没有告诉我 classes 可用,只是它们 存在 (这看起来很奇怪)。如果我在文件顶部添加一个 require 调用,并使用导入的值而不是原始的 class 名称,Node 会找到 class 并且我可以在我的代码中使用它。但这会带来两个问题:

那么,执行此导入的正确方法是什么?有没有办法让我的所有 classes 在全球范围内可用?如果没有,我需要什么导入语句?

This behavior leads me to believe that IntelliSense isn't actually telling me that the classes are available, just that they exist

除非您有顶级 importexport 声明,否则该文件被视为 global 模块并且在项目范围内可用:http://basarat.gitbooks.io/typescript/content/docs/project/modules.html 在 node.js

的运行时,全局模块将 不起作用

您应该使用 import/export 的文件级模块并使用 --module commonjs

进行编译