5

我正在测试 Microsoft 的新代码编辑器:Visual Studio Code。

我在 Windows 7 下,我正在尝试这个例子:https ://code.visualstudio.com/Docs/nodejs

但是当我尝试添加/// <reference path="/typings/node/node.d.ts"/>

就像示例中所说的那样。它不起作用。该文件从未下载过,我不知道在哪里可以找到它。

有人知道如何解决这个问题吗?是错误还是问题来自我的机器?

4

5 回答 5

24

TSD是 TypeScript 定义,而TypeScript是来自 Microsoft 的 JavaScript 的类型化超集,可编译为纯 JavaScript。如果你像我一样只是想使用 VSCode 开发常见的基于 JavaScript 的 node.js 项目,你不需要了解这些。

为了解决您的问题,我认为更好的方法是将TSD 包管理器安装为全局模块。这将使您能够全局使用命令tsd

npm install tsd@next -g

然后转到项目的根文件夹,然后键入

tsd install node

这将自动创建一个文件夹“typings/node”,其中包含一个名为“node.d”的 .ts 文件。

如果您还需要针对 express.js 或 async.js 等第三方模块的 IntelliSense,您可以自己添加它们

tsd install express

就像你已经熟悉的 'npm' 是 node.js 的包管理器一样,'tsd' 是 TypeScript Definition 的包管理器(但不是 TypeScript 本身)

这里有一个显示可用存储库的列表。

http://definelytyped.org/tsd/

一旦你将所有 .tsd 文件下载到 'typings' 文件夹中,你仍然需要手动将这些特殊注释放在每个 .js 文件的开头,以帮助 VSCode 查找 node 和 express 的定义,所以现在 VSCode 知道了 API类和函数的详细信息。

/// <reference path="typings/node/node.d.ts"/>
/// <reference path="typings/express/express.d.ts"/>
于 2015-05-04T06:29:20.403 回答
2

我昨晚刚试过,效果很好。

你不应该自己把参考。你应该让 VS Code 为你做这件事,按下“Ctrl + ”。(这就是你应该按下的点键)在标记的 __dirname 上,并选择网站上所说的 TypeScript 定义文件的选项。

VS Code 将在您的项目文件夹下创建目录结构,下载文件并将引用添加到您的 app.js express 应用程序。

于 2015-04-30T10:30:22.637 回答
0

我在使用 angular 时遇到了同样的问题,这就是我让它为我工作的方式:看起来问题是 VSCode 无法下载文件并创建目录。我用谷歌搜索了 angular.d.ts 并在GitHub 上找到了它——DefinitelyTyped

我创建了“typings/angularj/”文件夹并添加了文件,现在智能感知正在为 angular 工作:)

所以只需获取“node.d.ts”文件而不是从DefiniteTyped,它也应该对你有用。

于 2015-05-03T16:17:19.477 回答
0

正如@HenryLi 提到的,您需要获取一个包含 Node.js 类型定义的文件。然而,TSD 已经被弃用了一段时间。不过不用担心!现在类型定义由 Microsoft 直接管理并通过npm!

要解决您的问题,运行以下命令就足够了

npm install --save -g @types/node
于 2018-02-28T09:45:57.257 回答
-2

(编辑:VS Code 需要我打开一个目录,而不是一个文件才能让智能感知正常工作)

对我来说同样的问题。

这不起作用:

添加 /// 对 'node/node.d.ts' 的引用

没发生什么事...

在此处输入图像描述

但这确实有效,VS Code 正在响应。(编辑:停止警告,但不会以这种方式自动完成):

将“__dirname”标记为全局

在此处输入图像描述

于 2015-05-01T15:03:06.837 回答