PayPal 使用 TypeScript 类型定义增强 JavaScript SDK
电子支付平台 PayPal 宣布已将 TypeScript 类型定义添加到其 JavaScript SDK paypal-js npm 包中。
“你知道 PayPal 为我们的 JavaScript SDK 发布了类型定义吗?而且你甚至不需要使用 TypeScript 就能受益。它们作为 Paypal-js npm 包的一部分。在这篇文章中,我将介绍该包的内容,以及如何利用 TypeScript 定义来加快 PayPal 应用程序的开发,无论你是否用 TypeScript 编写代码。”
npm install @paypal/paypal-js
根据介绍,该 paypal-js 模块可以轻松地异步加载 PayPal JavaScript SDK。它提供了一个 loadScript() 方法,将 SDK的<script> tag 注入页面,并返回一个 promise,该 promise 将在脚本加载成功后解析。使用此实用程序可以更轻松地在参数更改(例如货币更改)时处理错误和重新加载脚本等任务。
一个基本的用法示例:
TypeScript Hints
只要在 loadScript 回调中键入 Paypal ,TypeScript autocompletion 就会出现。TS 和 JS 文件都支持此功能,如下所示:
TypeScript 能够展示可以传递给 paypal.Buttons() 的所有选项,包括其返回类型。createOrder 选项可以接收一个 Record(一个标准的 JS 对象)的回调,其中有一个 string 作为 key,和一个未知值;以及一个 CreateOrderActions 对象作为其第二个参数。它将返回一个持有字符串值的 Promise,也就是 order ID。
如果缺少任何内容或输入不正确,IDE 将会用红色波浪线标出错误。
将鼠标悬停在文本上将提供有关缺少参数的详细信息,在 createOrder 方法上单击 cmd 将使开发者直接进入 TypeScript 定义。
选择附加功能
虽然 JS SDK 类型定义相当全面,但实际支持的方法取决于传递到 JavaScript SDK <script> tag 的组件查询参数。默认情况下,Buttons
是唯一受支持的方法。有关选择所需组件的更多详细信息,可参阅脚本配置指南。
没有 LoadScript 的 TypeScript 定义
loadScript() 方法并不是在应用程序中启用 TypeScript 定义的必要要求。如果你想避免将这种依赖性带入你的应用程序,可以使用 import type 语法而不是import。从而可在构建时获得所有 TypeScript 的好处,而不会增加包的大小。
从 paypal-js 模块 import 和 import type 时,都提供对 loadScript 模块和全局 window.paypal 变量的类型定义的访问。
进一步拥抱类型
为 PayPal JavaScript SDK 维护的所有类型都直接从 paypal-js 模块的根目录中导出,并且可以单独导入:
上图示例中,myIntent 变量和 postal_code 属性都输入错误,将显示类似于下面的错误:
有数十种与 PayPal 相关的类型,每种类型都有关于其属性和用途的大量文档,可以进一步帮助构建应用程序。
Paypal 开发者关系经理 Jamund Ferguson 总结称,“有了可用的类型提示,你在使用 PayPal JavaScript SDK 编写应用程序时会更有效率。你应该能够在不离开 IDE 的情况下完成更多工作,并且当你确实需要查看文档时,多数情况下你都可以在类型定义中找到所需的内容。其他情况下,则将提供指向给定方法的最佳文档的直接链接。无论你是否在应用程序中使用 TypeScript,都可以从这些新的类型定义中受益。”

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
Arctic —— 网易开源的流式湖仓服务
Arctic 是由网易开源的流式湖仓系统,Arctic 在 Iceberg 和 Hive 之上添加了更多实时场景的能力,并且面向 DataOps 提供流批统一,开箱即用的元数据服务,让数据湖更加好用和实用。 概述 Arctic 是搭建在 Apache Iceberg 表格式之上的流式湖仓服务(Streaming LakeHouse Service)。通过 Arctic,用户可以在 Flink、Spark、Trino 等引擎上实现更加优化的 CDC,流式更新,OLAP 等功能, 结合数据湖高效的离线处理能力,Arctic 能够服务于更多流批混用的场景;同时,Arctic 的结构自优化、并发冲突解决以及标准化的湖仓管理功能,可以有效减少用户在数据湖管理和优化上的负担。 Arctic 服务通过部署 AMS 来展现,AMS 可以认为是 HMS(Hive Metastore)的下一代产品,或者是面向 Iceberg 的 HMS。 Arctic 依赖 Iceberg 作为基础表格式,但 Arctic 没有侵入 Iceberg 实现,而是将 Iceberg 作为一个 Lib 使用, 在 Flink、...
- 下一篇
NTFS3 文件系统驱动“迟来”的提交,Linus 破例合并
NTFS3 是软件开发商 Paragon Software贡献给 Linux 内核的读/写文件系统驱动程序。根据此前的报道,NTFS 驱动经历了近半年没有重大更新的状态,甚至被建议标记为“孤儿项目”。Paragon Software 创始人兼 CEO Konstantin Komarov 对此的解释是,团队的工作环境出现了变动,无法顺利提交代码。 现在 Paragon Software 终于可以正常提交代码,但却错过了合并窗口。 在前不久发布的 Linux 6.0 中,CEO Konstantin Komarov 提交了针对新版内核的代码重构补丁,以及错误修复。不过他提交 commit 的时间节点却十分不凑巧——刚好是合并窗口关闭后的几天。 Linux 6.0 的合并窗口在上周末随着 6.0-rc1 的发布而关闭。按照 Linux 的运作流程,合并窗口开启的两周内一般都会引入新的功能代码和其他非严格的 bug 修复工作。然而,在合并窗口开启期间,Paragon Software没有提交任何关于 NTFS3 驱动的修改。 对于这个“迟到”的 commit,Linus 评论道: 这确实应该...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- CentOS7,8上快速安装Gitea,搭建Git服务器
- CentOS关闭SELinux安全模块
- CentOS8编译安装MySQL8.0.19
- CentOS8安装Docker,最新的服务器搭配容器使用
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- Docker安装Oracle12C,快速搭建Oracle学习环境
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- Red5直播服务器,属于Java语言的直播服务器
- Windows10,CentOS7,CentOS8安装Nodejs环境