为了账号安全,请及时绑定邮箱和手机立即绑定

如何在 Angular 中使用“jquery-param”npm 包?

如何在 Angular 中使用“jquery-param”npm 包?

茅侃侃 2022-10-27 16:13:28
jquery-param npm 包具有我在 Angular9 项目中需要的功能。我注意到它没有打字稿的类型,所以我还添加了@types/jquery-param作为依赖项。我尝试以不同的方式导入无济于事。我还阅读了有关definitelyTyped 和typings 的各种答案,但无法找到解决方案。如果有人愿意看一下,请按预期用途制作StackBlitz 。更新:TL;DR:我设法导入并使用它。现在项目编译并且运行良好,但是 VSCode 的检查器在 import 语句中标记了一个错误。关闭并重新打开 VSCode 后,它不再显示导入错误。似乎它只在应用启动时加载对tsconfig.json的更改。在StackBlitz中,只需键入和导入import param from 'jquery-param';.继续在我的真实项目中安装这两个软件包。然后由于编译器抱怨导入时遇到问题:src/app/shared/services/http.service.ts:4:24 中的错误 - 错误 TS2497:此模块只能通过打开“allowSyntheticDefaultImports”标志并引用其默认导出来引用 ECMAScript 导入/导出。这是因为类型是如何导出的,正如@wtho 提到的那样,如下所述:index.d.ts(8, 1):此模块使用 'export =' 声明,并且只能在使用 'allowSyntheticDefaultImports' 标志时与默认导入一起使用。尝试import * as params from 'jquery-params'使用大括号和其他方式导入,但没有成功。所以我加了    "esModuleInterop": true,         "allowSyntheticDefaultImports": true,到tsconfig.json作为提到的一些答案。现在项目编译并且运行良好。关于jquery-param 的注意事项:此包导出一个与jQuery.param()等效的单一函数。这允许对嵌套对象进行编码,以在 GET 请求中将其作为查询字符串传递。我将在对这样的 API 的请求中使用它:
查看完整描述

1 回答

?
沧海一幻觉

TA贡献1824条经验 获得超5个赞

在引入 ES 模块之前,包通常将单个函数导出为默认导出。您可以使用 ES 模块语法导入这些import param from 'jquery-param',只需"esModuleInterop": true在您的 base中设置tsconfig.json

如果 VSCode 仍然报错,请确保您没有激活一些过时的 TypeScript 扩展。

这是一个有效的stackblitz 演示

它也适用于我在本地使用 Angularv10.0.2和 TypeScript v3.9.5


请注意,url 查询参数不是为传输复杂对象而设计的。如果可能,切换到 HTTP POST 请求可能是更好的解决方案。


查看完整回答
反对 回复 2022-10-27
  • 1 回答
  • 0 关注
  • 101 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信