Visual Studio Code 中的 JQuery 智能感知

15

我决定使用Visual Studio Code创建一个应用程序。
现在,我似乎无法为JQuery和JQuery Mobile同时启用智能感知。

我的VSC版本是0.10.1

我尝试添加了一个名为reference.d.ts的文件,并加入以下内容:

/// <reference path="js/jquery.d.ts"/>
/// <reference path="js/jquerymobile.d.ts"/>

(从https://github.com/DefinitelyTyped/DefinitelyTyped下载的文件)

我尝试打开一个.js文件,添加一个$(this),然后按下ctrl+period,但它显示“没有建议”。

是什么我错过了吗?

更新:

尝试添加一个jsconfig.json文件,遵循https://code.visualstudio.com/docs/languages/javascript#_javascript-projects-jsconfigjson

{
    "files": [
        "js/jquery.d.ts",
        "js/jquerymobile.d.ts"
    ]
}

重新启动,什么也没有发生...

更新 2:

添加了一个 .js 文件,输入$ 并点击灯泡以下载 jquery.d.ts 文件。它警告我要将这个文件添加到 jsconfig.json 文件中。 在完成所有这些操作之后,重新启动仍然无法工作。

jsconfig.json 文件内容:

{
    "files": [
        "typings/jquery/jquery.d.ts"
    ]
}

什么都没有!


我刚刚尝试将reference.d.ts文件重命名为_references.js,重新启动了VSC,但仍然没有任何变化。 - grmbl
2
我也遇到同样的问题。无论我尝试什么配置,VS Code都不会自动补全jQuery。微软的文档也没有太多帮助。 - Kokodoko
7个回答

23

最新(截至2017年4月)建议的方法是通过在项目根目录中添加 jsconfig.json 文件来使用自动类型获取,文件内容如下:

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

然后,在您的编辑器中,您将看到:

jquery intellisense in Visual Studio Code

获取更多信息,请查看官方文档


我也可以用AngularJS来做这个吗? - anaval
这在一台机器上对我起作用,但在另一台机器上不行(同一个代码库)。有什么线索可以说明问题出在哪里吗? - snarf

7

如果您已经熟悉npm(如果没有,您应该),我建议您安装 typings,这是一个与Visual Studio Code非常配合的TypeScript定义管理器(在Mac和Windows上测试过)。

只需运行

npm install typings --global

当然,您必须在本地PC/Mac上已经 安装 了npm。
之后,进入命令行(终端或cmd)并运行。
typings install dt~jquery --global --save

它将创建typings目录和所有必需的文件(无需重新启动Visual Studio Code),您就可以开始使用了!
如果您想了解更多关于typings的内容,请点击上面的链接。

tsd安装jquery打印零结果,有什么提示吗? - Gocy015
tsd is deprecated, you can run npm install typings --global - StoriKnow
typings install dt~jquery --global --save / (node:11656)UnhandledPromiseRejectionWarning:未处理的承诺拒绝(拒绝ID:2):PopsicleError:无法连接到“https://api.typings.org/entries/dt/jquery/versions/latest” - Stefano Magistri

4
步骤 1: 确保您的项目中有定义文件。 如果您已经安装了npm,请运行以下命令:
npm i --save-dev @types/jquery

如果安装了Node.js,则可以在node_modules/@types/jquery中安装jQuery定义文件;否则,请下载并将其放置在任意文件夹中。

然后,进行第二步:

创建一个jsconfig.json文件。

$ touch jsconfig.json

将此代码放入jsconfig.json文件中

{
    "include": [
        "./node_modules/@types"
    ],
    "exclude": [
        "./node_modules"
    ]
}

这就是全部内容。

**

注意:我在排除./node_modules,以防您的项目中有它。如果没有,请只包括jquery.d.ts文件。

**

谢谢。


1
我是一名有用的助手,可以为您翻译文本。

我遇到了一点问题,所以我想分享对我有用的解决方案。 首先,在项目根目录下需要有 package.json 文件,如果您没有,请在控制台中输入:

$ npm init

这个命令应该创建一个包含必要内容的package.json文件。然后在控制台中运行此命令:

$ npm install --save @types/jquery

就像 @oldbam 之前说的那样,使用自动类型获取: 通过创建以下代码的 jsonconfig.json:

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

0

如果您正在使用 typings 1.x,您应该使用以下命令:

typings install dt~jquery --global

在 typings 1.x 中,有很多变化。


0

在编写脚本时,不要忘记添加对 d.ts 文件的引用。例如,在您想要在键入时看到 jQuery 建议的脚本顶部添加此引用 /// <reference path="js/jquery.d.ts"/>


0
typings/ 目录下创建一个名为 "tsd.d.ts" 的文件,并添加以下内容:
/// <reference path="js/jquery.d.ts"/>
/// <reference path="js/jquerymobile.d.ts"/>

jsconfig.json 不需要包含 files 属性:

{
    "compilerOptions": {
        "target": "ES5",
    }
}

1
我已经尝试了您建议的方法并重新启动,但仍然不起作用。如果我编辑一个独立的.js文件并键入$(this),会出现提示下载jquery.d.ts文件的灯泡。它成功地下载了typings/jquery/jquery.d.ts,并提供以下建议:确保在项目的'jsconfig.json'中包含d.ts文件。 - grmbl

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接