Visual Studio Code Intellisense和JavaScript ES5

问题描述:

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

全球类型的Intellisense,如角和jquery,似乎工作。但是,用于外部类型的智能感知不起作用。

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

VSCode Typings

在接下来的两个图像,你可以看到,智能感知工作角和jQuery。

VSCode Typings with Angular

VSCode Typings with jQuery

现在,我使用LoDash,但智能感知不工作。

VSCode Typings with LoDash

如果我导入LoDash库,然后智能感知的作品。由于代码是传统的ES5 JavaScript和导入不支持ES5,使用导入不是一个可行的选择。

VSCode Typings with LoDash and imports

一个好的测试将得到智能的LoDash工作。我想输入“_”。并让VSCode显示LoDash属性和方法的列表,而不在源代码中包含任何其他代码。

有谁知道如何解决这个问题?如果是这样,请提供对您有用的东西。

资源

BarDev

+0

类型特定于TypeScript(因此您看到“.ts”文件结尾)。更改文件名为“main.ts”,我猜它会起作用。将TypeScript编译器设置为定位ES5,就完成了。 –

+0

@MikeMcCaughan - 基于我的解毒证据,intellisense与AngularJS和jQuery一起使用,没有扩展名为“.ts”的文件。同样在VSCode文档中,它讨论了JavaScript文件可以使用智能感知。 JavaScript的 - 丰富的编辑支持 https://code.visualstudio.com/docs/languages/javascript 我在typings.json文件注意到,角度和jQuery位于“globaDependency”,但lodash位于“依赖”。 我的确尝试在全球安装lodash类型,但我收到一个错误消息,类型是一个外部模块。 –

+0

我没有提到任何有关智能感知的内容。我正在专门讨论打字,定义文件或“.d.ts”文件。您的屏幕截图在“typings \ global”下显示一个“角度”文件夹。可能想在那里偷看:)。 JavaScript中的Intellisense使用JavaScript分析引擎来发现项目中有关“.js”文件的元数据。 –

正如写在official VS Code JS Intellisense documentation

如果您使用的是Visual Studio代码1.8+,你可以交替expli citly列出的软件包可以在您的jsconfig.json中获得类型。

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

现在,当你需要或进口lodash,Visual Studio代码将使用自动下载分型文件库来提供丰富的智能感知。最常用的JavaScript库有类型可用。

+1

但是,如果我不想要求或导入lodash,因为我实际上期待它是我遗留ES5代码中的全局变量,我该怎么办? –