【发布时间】:2016-10-31 01:39:47
【问题描述】:
在 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。
在接下来的两张图片中,您可以看到 Intellisense 适用于 Angular 和 jQuery。
现在,我正在使用 LoDash,但 IntelliSense 无法正常工作。
如果我导入 LoDash 库,那么 IntelliSense 就可以工作。由于代码是遗留的 ES5 JavaScript 并且 ES5 不支持导入,因此使用导入不是一个可行的选择。
一个好的测试是让 IntelliSense 为 LoDash 工作。我想输入“_”。并让 VSCode 显示 LoDash 属性和方法的列表,而无需在源代码中包含任何其他代码。
有谁知道如何解决这个问题?如果是这样,请提供对您有用的方法。
资源
BarDev
【问题讨论】:
-
类型是特定于 TypeScript 的(因此您会看到“.ts”文件结尾)。将文件名更改为“main.ts”,我猜它会起作用。将 TypeScript 编译器设置为以 ES5 为目标,就完成了。
-
@MikeMcCaughan - 根据我的解毒剂证据,intellisense 可与 AngularJS 和 jQuery 一起使用,而文件的扩展名为“.ts”。同样在 VSCode 文档中,它讨论了 JavaScript 文件可以使用智能感知。 JavaScript - 丰富的编辑支持code.visualstudio.com/docs/languages/javascript 我注意到在我的 typings.json 文件中,angular 和 jquery 位于“globaDependency”中,但 lodash 位于“dependency”中。我确实尝试在全局范围内安装 lodash typings,但我收到一个错误,即 lodash typings 是一个外部模块。
-
我没有提到 Intellisense。我专门讨论的是类型、定义文件或“.d.ts”文件。您的屏幕截图显示了“typings\global”下的“angular”文件夹。可能想看看那里:)。 JavaScript 中的 Intellisense 使用 JavaScript 解析引擎来发现有关项目中“.js”文件的元数据。
标签: javascript intellisense visual-studio-code typescript-typings