我正在测试 Microsoft 的新代码编辑器:Visual Studio Code。
我在 Windows 7 下,我正在尝试这个例子:https ://code.visualstudio.com/Docs/nodejs
但是当我尝试添加/// <reference path="/typings/node/node.d.ts"/>
就像示例中所说的那样。它不起作用。该文件从未下载过,我不知道在哪里可以找到它。
有人知道如何解决这个问题吗?是错误还是问题来自我的机器?
我正在测试 Microsoft 的新代码编辑器:Visual Studio Code。
我在 Windows 7 下,我正在尝试这个例子:https ://code.visualstudio.com/Docs/nodejs
但是当我尝试添加/// <reference path="/typings/node/node.d.ts"/>
就像示例中所说的那样。它不起作用。该文件从未下载过,我不知道在哪里可以找到它。
有人知道如何解决这个问题吗?是错误还是问题来自我的机器?
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 本身)
这里有一个显示可用存储库的列表。
一旦你将所有 .tsd 文件下载到 'typings' 文件夹中,你仍然需要手动将这些特殊注释放在每个 .js 文件的开头,以帮助 VSCode 查找 node 和 express 的定义,所以现在 VSCode 知道了 API类和函数的详细信息。
/// <reference path="typings/node/node.d.ts"/>
/// <reference path="typings/express/express.d.ts"/>
我昨晚刚试过,效果很好。
你不应该自己把参考。你应该让 VS Code 为你做这件事,按下“Ctrl + ”。(这就是你应该按下的点键)在标记的 __dirname 上,并选择网站上所说的 TypeScript 定义文件的选项。
VS Code 将在您的项目文件夹下创建目录结构,下载文件并将引用添加到您的 app.js express 应用程序。
我在使用 angular 时遇到了同样的问题,这就是我让它为我工作的方式:看起来问题是 VSCode 无法下载文件并创建目录。我用谷歌搜索了 angular.d.ts 并在GitHub 上找到了它——DefinitelyTyped
我创建了“typings/angularj/”文件夹并添加了文件,现在智能感知正在为 angular 工作:)
所以只需获取“node.d.ts”文件而不是从DefiniteTyped,它也应该对你有用。
正如@HenryLi 提到的,您需要获取一个包含 Node.js 类型定义的文件。然而,TSD 已经被弃用了一段时间。不过不用担心!现在类型定义由 Microsoft 直接管理并通过npm
!
要解决您的问题,运行以下命令就足够了:
npm install --save -g @types/node
(编辑:VS Code 需要我打开一个目录,而不是一个文件才能让智能感知正常工作)
对我来说同样的问题。
这不起作用:
添加 /// 对 'node/node.d.ts' 的引用
没发生什么事...
但这确实有效,VS Code 正在响应。(编辑:停止警告,但不会以这种方式自动完成):
将“__dirname”标记为全局