加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

angular – 由typescript导入的代码的Typescript类型?

发布时间:2020-12-17 18:07:14 所属栏目:安全 来源:网络整理
导读:这是一个Angular应用程序的问题,但我不认为这是一个角度特定的问题. 我正在开发一个Angular 7应用程序,我正在使用一些库,这些库是通过前端的脚本标签从其他来源(Stripe,recaptcha,googletags等)导入的.我将在这里使用Stripe作为示例,因为Stripe绝对要求客户
这是一个Angular应用程序的问题,但我不认为这是一个角度特定的问题.

我正在开发一个Angular 7应用程序,我正在使用一些库,这些库是通过前端的脚本标签从其他来源(Stripe,recaptcha,googletags等)导入的.我将在这里使用Stripe作为示例,因为Stripe绝对要求客户端从Stripe.js导入前端库以实现PCI兼容性,因此从源服务器端不是一个选项.

我已经从DefinitelyTyped安装了Stripe的类型.如果我添加声明让Stripe:any;并且在组件中使用Stripe,它可以工作,但当然它不是类型安全的.如果我省略声明,VSCode发现类型很好,编辑器捕获类型错误,但它不会编译,(错误TS2304:找不到名称’Stripe’.)可能因为我没有Stripe的import语句.

有没有办法提示TypeScript它应该使用DefinitelyTyped中的类型来捕获类型错误,而不导入Stripe库本身?

编辑:我收回我所说的关于不认为这是Angular特定的内容.我现在认为这可能与角度编译过程有关.

解决方法

我过去遇到了同样的问题,我也发现在不导入实际模块的情况下使用导入导入类型定义文件是不可能的.

所以,我所做的是,我将Type Definition文件(通常是index.d.ts)复制到我的代码库中.

之后,您可以执行以下操作:

import {SomeType} from "sometype.d.ts"
declare let ObjectImportedFromHTMLScriptTag: SomeType;

然后,您可以使用导入的对象而不会破坏类型安全性.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读