Visual studio code 如何使用es5和Visual Studio代码获取外部javascript库的intellisense
我正在使用无传送器的项目。当我想在VisualStudio代码中使用外部库和intellisense时,我需要使用导入(这不适用于es5) 示例:我想使用axios库,所以我使用npm安装它,将脚本标记引用添加到axios.js,并在app.js中编写应用程序代码。当我这样做的时候,我可以得到智能感知Visual studio code 如何使用es5和Visual Studio代码获取外部javascript库的intellisense,visual-studio-code,Visual Studio Code,我正在使用无传送器的项目。当我想在VisualStudio代码中使用外部库和intellisense时,我需要使用导入(这不适用于es5) 示例:我想使用axios库,所以我使用npm安装它,将脚本标记引用添加到axios.js,并在app.js中编写应用程序代码。当我这样做的时候,我可以得到智能感知 从“axios”导入axios 但如果使用es5,它将失败 我确实发现了一个让我智能感知的黑客解决方案,它将不会在es5中失败: var-axios=axios | | require('axio
从“axios”导入axios代码>
但如果使用es5,它将失败
我确实发现了一个让我智能感知的黑客解决方案,它将不会在es5中失败:
var-axios=axios | | require('axios')。默认值代码>
但至少对我来说,仅对intellisense而言,这看起来太粗糙了:)
我还注意到,例如jquery intellisense在没有导入的情况下也可以工作,我认为原因是jquery类型定义文件不使用模块语法(导出),并且将内容添加到全局范围中。因此,我还想知道是否有可能创建我自己的类型定义文件来将内容添加到全局范围中?进一步研究了这一点,发现实际上您可以创建自己的帮助器类型定义文件,将模块中的类型导入到全局范围中,以便在具有全局范围的ES5项目中使用它:
在项目中创建包含以下内容的文件global.d.ts(名称无关紧要):
import { AxiosStatic } from "axios";
declare global {
const axios: AxiosStatic;
}
这将使intellisense在全局上下文(在我的app.js中)中工作,而无需使用导入。当然,只有当您确实无法使用模块时才可以这样做(全局是坏的:)
我将看看是否可以说服vscode人员(他们在使用此文本编辑器方面做得非常出色:),这可能也是vscode文档中有用的补充()