如何将 Intellisense 文件导入 vsCode(Visual Studio 代码)
How to Import Intellisense files into vsCode (Visual Studio Code)
我不确定我是否理解 intellisense 如何为 Microsoft 的新 vsCode 文本编辑器工作。在 "Great Code Editing Experience" 标题下的 docs 中,它在节点全局变量 __dir
下显示警告,并提供灯泡建议以添加对一个 d.ts 文件,以便您可以获得节点的智能感知:
我有两个问题:
1 - 如何直接导入 DefinitelyTyped 文件 (d.ts)(没有编辑建议),或者我是否必须从 github 源复制它们并将它们放入打字目录?
2 - 我可以获得任何具有打字稿定义的库的智能感知吗?我尝试了下面的方法,但是当我输入 express.
或 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')
我通过从 https://github.com/borisyankov/DefinitelyTyped 下载 express.d.ts
文件并使用相对于我的项目目录的路径引用它来获得与 express 一起使用的 express intellisense:
/// <reference path="express.d.ts"/>
我仍在尝试查找 /typings
指的是什么。将 d.ts
文件配置为项目设置的一部分也可能很好。
编辑:
找到了。
~/Downloads/VSCode-osx
▶ find . -type d -name "typings"
./Visual Studio Code.app/Contents/Resources/app/node_modules/applicationinsights/Scripts/typings
所以他们默认将 node
、async
和 applicationInsights
捆绑到 OSX .app 中。您想要的任何其他内容我想您可以像我上面那样简单地包括在内。
编辑编辑:
@kurtcorbett 提到的 tsd package manager 看起来不错,使用它。
更新: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.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 定义文件有一个包管理器。这是一个社区驱动的存储库,其中包含许多流行库的 Typescript 定义。
您可以按照说明安装tsd here。
全局安装 tsd 后,您可以在命令行中从项目根目录安装包,如下所示:
$ tsd install express --save
这将创建一个 typings 目录(如果不存在)并添加一个包含 express.d.ts
文件的 express 目录。
它还会创建一个 tsd.d.ts
文件,其中包含对所有 tsd 文件的引用。如果我再安装几个 tsd,这就是它的样子。
现在要访问我的 tsd 文件,我需要做的就是在我的代码顶部使用 /// <reference path="typings/tsd.d.ts" />
引用它们的路径
现在我有了智能感知。
我所做的是触摸灯泡并选择表示将对 node/node.d.ts 的引用添加到项目的选项。
之后我就在编辑器的顶部写了:///,它对我有用。
2016 年 1 月 "tsd" 包已弃用。请改用 "typings" 包。
见https://github.com/DefinitelyTyped/tsd/issues/269
并且您可以在 VS Code(分机安装)中找到两个扩展 - Typings Installer 和 Typings 这有助于安装 d.ts 从 VS Code 轻松定义文件。
检查您是否在显式项目模式下工作(REF:https://code.visualstudio.com/Docs/languages/javascript#_javascript-projects-jsconfigjson)
发生了什么事?
在 Explicit Project Mode 中,VS Code 使用 typings 文件夹下的 "main.d.ts" 文件进行智能感知。该文件将引用其他定义文件,因此智能工作完美。在我的例子中,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 Code 不会检查类型定义,因此没有智能。在这种情况下,要添加智能,当您手动引用定义时,引用标签会派上用场。如果您手动引用,请引用类型下的 main.d.ts 而不是为特定库定义。这将使您的代码的引用密度降低。
另请注意,jsconfig.json 的打字稿等价物是 tsconfig.json,这也会将编辑器设置为显式项目模式。
如果您想自动安装包的类型定义,您可以下载 Types auto installer 扩展。它会监视您的 package.json
和 bower.json
并自动为您安装类型。
我认为这个扩展最好的部分是你不必在代码中包含 /// reference
行,因为它通过 npm 安装类型。
您可以在 2017 年 4 月发布后使用 jsconfig.json
文件实现此目的。
文件示例内容:
{
"typeAcquisition": {
"include": [
"jquery",
"underscore"
]
}
}
请参阅 jsconfig.json
参考 VSCode here.
我不确定我是否理解 intellisense 如何为 Microsoft 的新 vsCode 文本编辑器工作。在 "Great Code Editing Experience" 标题下的 docs 中,它在节点全局变量 __dir
下显示警告,并提供灯泡建议以添加对一个 d.ts 文件,以便您可以获得节点的智能感知:
我有两个问题:
1 - 如何直接导入 DefinitelyTyped 文件 (d.ts)(没有编辑建议),或者我是否必须从 github 源复制它们并将它们放入打字目录?
2 - 我可以获得任何具有打字稿定义的库的智能感知吗?我尝试了下面的方法,但是当我输入 express.
或 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')
我通过从 https://github.com/borisyankov/DefinitelyTyped 下载 express.d.ts
文件并使用相对于我的项目目录的路径引用它来获得与 express 一起使用的 express intellisense:
/// <reference path="express.d.ts"/>
我仍在尝试查找 /typings
指的是什么。将 d.ts
文件配置为项目设置的一部分也可能很好。
编辑:
找到了。
~/Downloads/VSCode-osx
▶ find . -type d -name "typings"
./Visual Studio Code.app/Contents/Resources/app/node_modules/applicationinsights/Scripts/typings
所以他们默认将 node
、async
和 applicationInsights
捆绑到 OSX .app 中。您想要的任何其他内容我想您可以像我上面那样简单地包括在内。
编辑编辑:
@kurtcorbett 提到的 tsd package manager 看起来不错,使用它。
更新: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.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 定义文件有一个包管理器。这是一个社区驱动的存储库,其中包含许多流行库的 Typescript 定义。
您可以按照说明安装tsd here。
全局安装 tsd 后,您可以在命令行中从项目根目录安装包,如下所示:
$ tsd install express --save
这将创建一个 typings 目录(如果不存在)并添加一个包含 express.d.ts
文件的 express 目录。
它还会创建一个 tsd.d.ts
文件,其中包含对所有 tsd 文件的引用。如果我再安装几个 tsd,这就是它的样子。
现在要访问我的 tsd 文件,我需要做的就是在我的代码顶部使用 /// <reference path="typings/tsd.d.ts" />
现在我有了智能感知。
我所做的是触摸灯泡并选择表示将对 node/node.d.ts 的引用添加到项目的选项。
之后我就在编辑器的顶部写了:///,它对我有用。
2016 年 1 月 "tsd" 包已弃用。请改用 "typings" 包。
见https://github.com/DefinitelyTyped/tsd/issues/269
并且您可以在 VS Code(分机安装)中找到两个扩展 - Typings Installer 和 Typings 这有助于安装 d.ts 从 VS Code 轻松定义文件。
检查您是否在显式项目模式下工作(REF:https://code.visualstudio.com/Docs/languages/javascript#_javascript-projects-jsconfigjson)
发生了什么事?
在 Explicit Project Mode 中,VS Code 使用 typings 文件夹下的 "main.d.ts" 文件进行智能感知。该文件将引用其他定义文件,因此智能工作完美。在我的例子中,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 Code 不会检查类型定义,因此没有智能。在这种情况下,要添加智能,当您手动引用定义时,引用标签会派上用场。如果您手动引用,请引用类型下的 main.d.ts 而不是为特定库定义。这将使您的代码的引用密度降低。
另请注意,jsconfig.json 的打字稿等价物是 tsconfig.json,这也会将编辑器设置为显式项目模式。
如果您想自动安装包的类型定义,您可以下载 Types auto installer 扩展。它会监视您的 package.json
和 bower.json
并自动为您安装类型。
我认为这个扩展最好的部分是你不必在代码中包含 /// reference
行,因为它通过 npm 安装类型。
您可以在 2017 年 4 月发布后使用 jsconfig.json
文件实现此目的。
文件示例内容:
{
"typeAcquisition": {
"include": [
"jquery",
"underscore"
]
}
}
请参阅 jsconfig.json
参考 VSCode here.