如何将智能感知文件导入到vsCode(Visual Studio代码)

我不确定我是否理解intellisense如何为微软的新的vsCode文本编辑器工作。 在“Great Code Editing Experience”标题下的文档中 ,它在节点全局variables__dir下面显示了一个警告,并提供了一个灯泡build议来添加对d.ts文件的引用,以便您可以获取节点的intellisense:

在这里输入图像描述

我有两个问题:

1 – 如何直接导入DefinitelyTyped文件(d.ts)(没有编辑器提示)或者我必须从github源文件中复制它们并将它们放在types目录中?

2 – 我可以获得具有打印定义的任何图书馆的智能感知吗? 我尝试了下面,但是当我inputexpress.when. ,我没有任何智慧。 但是,我确实得到节点智能感知。

 /// <reference path="../typings/node/node.d.ts"/> /// <reference path="../typings/express/express.d.ts" /> var when = require('when') , express = require('express') , gulp = require('gulp') 

更新:2016年8月:TSD现已折旧。 改为使用https://www.npmjs.com/package/typings

 npm install typings --global 

要么

如果使用2016年7月29日发布的VS2015 NodeJS v1.2,则typings-core@1.3.1会在首次使用时自动安装:

 Executing command 'npm install "C:\PROGRAM FILES (X86)\MICROSOFT VISUAL STUDIO 14.0\COMMON7\IDE\EXTENSIONS\MICROSOFT\NODE.JS TOOLS FOR VISUAL STUDIO\1.2\TypingsAcquisitionTool" ntvs-typings-acquisition-tool@1.0.0 ..\..\..\..\..\node_modules\ntvs-typings-acquisition-tool ├── minimist@1.2.0 └── typings-core@1.3.1 (array-uniq@1.0.3, thenify@3.2.0, zip-object@0.1.0, popsicle-status@2.0.0, popsicle-retry@3.2.1, listify@1.0.0, promise-finally@2.2.1, xtend@4.0.1, graceful-fs@4.1.5, throat@3.0.0, lockfile@1.0.1, strip-bom@2.0.0, sort-keys@1.1.2, string-template@1.0.0, make-error-cause@1.2.1, any-promise@1.3.0, has@1.0.1, rc@1.1.6, object.pick@1.1.2, debug@2.2.0, mkdirp@0.5.1, invariant@2.2.1, configstore@2.0.0, parse-json@2.2.0, touch@1.0.0, detect-indent@4.0.0, is-absolute@0.2.5, popsicle-proxy-agent@3.0.0, rimraf@2.5.4, popsicle@8.0.4, typescript@1.8.7) 

—–原创答案—–

Typescript定义文件有一个包pipe理器。 这是一个社区驱动的存储库,包含许多stream行库的Typescript定义。

您可以按照此处的说明安装tsd。

一旦你全球安装了tsd,你可以像这样在命令行中安装项目根目录下的软件包:

 $ tsd install express --save 

这将创build一个typings目录,如果一个不存在,并在里面添加一个express.d.ts文件的快速目录。

截图

它还创build一个tsd.d.ts文件,其中包含对所有tsd文件的引用。 如果我安装更多的tsd的,这是它的样子。

在这里输入图像描述

现在要访问我的tsd文件,我需要做的就是引用他们的path在我的代码的顶部/// <reference path="typings/tsd.d.ts" />

在这里输入图像描述

现在我得到智能感知。

在这里输入图像描述

在2016年1月,“tsd”包被弃用。 使用“typings”包代替。

https://github.com/DefinitelyTyped/tsd/issues/269

你可以在VS Code(ext install)中find两个扩展 – Typings InstallerTypings ,它可以很容易地从VS Code安装d.ts定义文件。

检查你是否在显式项目模式 (REF: https : //code.visualstudio.com/Docs/languages/javascript#_javascript-projects-jsconfigjson )

发生什么事?

显式项目模式下 ,VS代码使用typings文件夹下的“main.d.ts”文件进行智能感知。 这个文件将有其他定义文件的参考,因此intellisence完美。 在我的情况下,main.d.ts如下所示

 /// <reference path="main/ambient/express-serve-static-core/index.d.ts" /> /// <reference path="main/ambient/express/index.d.ts" /> /// <reference path="main/ambient/node/index.d.ts" /> /// <reference path="main/ambient/serve-static/index.d.ts" /> 

文件范围模式下 ,VS代码不会检查types定义,因此也不会检测。 在这种情况下,为了增加智能,参考标签会随着您手动引用定义而变得方便。 如果您正在手动引用,请参考types下的main.d.ts,而不是定义特定的库。 这会使你的代码更less引用密集。

另外请注意, jsconfig.json的打字稿等价物是tsconfig.json ,它也将编辑器设置为Explicit Project模式。

我通过从https://github.com/borisyankov/DefinitelyTyped下&#x8F7D;express.d.ts文件,并使用与我的项目dir相关的path来引用快速intellisense来使用express:

 /// <reference path="express.d.ts"/> 

我仍然试图find什么/typings是指。 将d.ts文件configuration为项目设置的一部分可能也不错。

编辑:

find了。

 ~/Downloads/VSCode-osx ▶ find . -type d -name "typings" ./Visual Studio Code.app/Contents/Resources/app/node_modules/applicationinsights/Scripts/typings 

因此,默认情况下,它们将nodeasyncapplicationInsights捆绑到OSX .app中。 任何你想要的,我猜你可以简单地包括,因为我在上面做了。

编辑编辑:

@kurtcorbett提到的tsd包pipe理器看起来不错,使用它。

如果您想自动安装软件包的types定义,可以下载types自动安装程序扩展。 它会监视你的package.jsonbower.json并为你自动安装types。

我认为这个扩展最好的部分是你不必在代码中包含/// reference行,因为它通过npm来安装types。

我所做的就是触摸灯泡,并select了添加对node / node.d.ts的引用给选项的选项。

之后,我只是在编辑器的顶部写道:///,它对我很有帮助。

您可以在2017年4月发布后使用jsconfig.json文件实现此目的。

文件的示例内容:

 { "typeAcquisition": { "include": [ "jquery", "underscore" ] } }