Visual Studio Code Intellisense和JavaScript ES5

时间:2016-06-28 16:03:00

标签: javascript intellisense visual-studio-code typescript-typings

在Visual Studio Code(VSCode)中,我正在使用JavaScript ES5的遗留应用程序。我注意到IntelliSense不适用于我安装的所有类型。 Intellisense正在为全球打字工作,但不适用于外部打字?由于这是遗留代码,我宁愿不更改源.js文件以使Intellisense工作。

全局类型的Intellisense,例如angular和jquery,似乎有效。但是,用于外部打字的IntelliSense无法正常工作。

在这里你可以看到我安装了四种类型。 Angular和jQuery作为全局变量安装。 LoDash和Ramda作为外部安装。我创建了一个jsconfig.json文件;它是空的。通过使用jsconfig.json文件,IntelliSense适用于Angular和Jquery,但不适用于LoDash和Ramda。

VSCode Typings

在接下来的两张图片中,您可以看到Intellisense正在为Angular和jQuery工作。

VSCode Typings with Angular

VSCode Typings with jQuery

现在,我使用的是LoDash,但IntelliSense无法使用。

VSCode Typings with LoDash

如果我导入LoDash库,则IntelliSense可以正常工作。由于代码是传统的ES5 JavaScript并且ES5不支持导入,因此使用导入不是一个可行的选择。

VSCode Typings with LoDash and imports

一个好的测试是让IntelliSense适用于LoDash。我想输入" _。"并让VSCode显示LoDash属性和方法的列表,而不在源代码中包含任何其他代码。

有谁知道如何解决这个问题?如果是这样,请提供适合您的内容。

资源

BarDev

2 个答案:

答案 0 :(得分:3)

正如official VS Code JS Intellisense documentation所述,

  

如果您使用的是Visual Studio Code 1.8+,则可以选择明确地列出包以获取jsconfig.json中的包含内容。

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

现在,当您需要或导入lodash时,Visual Studio Code将使用自动下载的库文件来提供丰富的Intellisense。最常见的JavaScript库都有可用的类型。

答案 1 :(得分:0)

您可以创建自己的类型定义文件以在全局上下文中导入内容。当您不能使用导入功能时,这将使智能感知工作。

import { AxiosStatic } from "axios";

declare global {
  const axios: AxiosStatic;
}

另请参阅How to get intellisense for external javascript libraries with es5 and Visual Studio Code