首页 > 解决方案 > node_modules/@types/jquery"' 没有导出成员 'jQuery'

问题描述

Angular 10 推出了一项新功能,该功能会发出警告:

为确保打包程序能够成功优化您的应用程序,请避免依赖 CommonJS 模块,并在整个应用程序中使用 ECMAScript 模块语法。

我在我的 Angular 项目中安装了 jquery 和 @types/jquery,起初我将 jquery 导入到一个组件中,import * as $ from 'jquery'该组件引发了上述错误。当我检查代码时,它实际上是从 index.d.ts 类型文件的 '../../../node_modules/@types/jquery/index' 导入的。该文件具有单个导出export = jQuery;和对类型文件集合的引用。如果我改写import { jQuery } from 'jquery';,我会收到错误消息:

../../../node_modules/@types/jquery"' 没有导出成员 'jQuery'

我对 typescript 还是很陌生,但是使用 nodejs 非常令人沮丧,因为有十几种不同的方法可以从模块中导入某些东西。那么如何使用 ECMAScript 语法导入 jquery?我一直在使用编译器设置和“allowSyntheticDefaultImports”选项,所以我可以import $ from 'jquery'在没有红色波浪的情况下编写,但编译仍然会引发错误:

此模块使用“export =”声明,并且只能在使用“allowSyntheticDefaultImports”标志时与默认导入一起使用。

这很奇怪,因为我尝试在 tsconfig.app.json 和 tsconfig.base.json 中设置此选项,即使其中一个只是扩展了另一个。

标签: jqueryangulartypescript

解决方案


推荐阅读