【发布时间】:2015-07-11 02:56:26
【问题描述】:
我目前正在使用 Node.JS Tools for Visual Studio (NTVS) 编写一个用 TypeScript 编写的 Node.JS 项目。我的项目中有一些类和枚举分布在 3 或 4 个文件中。我现在正在尝试使用我的主应用程序文件中这些文件中定义的类。从我之前使用 Node 的工作中,我知道如果我使用文本编辑器和命令行编译器,我通常需要一个 require 调用来导入其他文件/类。但是,如果我在我的项目中打开任何 TypeScript 文件并开始键入在不同文件中定义的类的名称,Visual Studio 会显示类名称及其成员的 IntelliSense 自动完成功能。这让我认为 NTVS 和/或 TypeScript 配置会自动使我的所有类在项目范围内可用。但是,如果我单击“运行”按钮,则会将错误打印到控制台,因为 Node 在运行时找不到引用的类。
这种行为让我相信 IntelliSense 实际上并没有告诉我这些类是可用的,只是告诉我它们存在(这看起来很奇怪)。如果我在文件顶部添加require 调用,并使用导入的值而不是原始类名,Node 会找到该类,我可以在我的代码中使用它。但这带来了两个问题:
- 我必须想出一个新名称,用于将类导入其中的变量。如果我使用原始名称
require()它,Visual Studio 会显示错误,指出标识符是重复的,因为它似乎认为原始类在项目范围内可用。 - 我在使用类时没有自动完成或类型检查。这几乎违背了使用 TypeScript 的目的。
那么,进行此导入的正确方法是什么?有没有办法让我的所有课程在全球范围内可用?如果没有,我需要什么导入语句?
【问题讨论】:
标签: node.js visual-studio typescript ntvs