在 Typescript 项目中使用 cdn 加载的js插件没有类型声明

news2025/7/14 11:25:14

先上一段同事写得代码, 此处动态的插入了 MathJax 这个 js 插件, 我不知道为什么如此编写,

  //@ts-ignore 此处不知道为什么如此调用, 只能使用 ts-ignore 忽略
      dynamicLoadingJs("//xxx.com/latex/MathJax.js?config=TeX-AMS_HTML", () => {
        MathJax.Hub.Config({
          extensions: ["tex2jax.js", "TeX/noUndefined.js"],
          jax: ["input/TeX", "output/HTML-CSS"],
          tex2jax: {
            inlineMath: [["$", "$"], ["\\(", "\\)"]],
            displayMath: [["$$", "$$"], ["\\[", "\\]"]]
          },
          TeX: {extensions: ["AMSmath.js", "AMSsymbols.js"]},
          "HTML-CSS": {showMathMenu: false},
          messageStyle: "none",
        });
        MathJax.Hub.Queue(["Typeset", MathJax.Hub]);
      } );

为什么不是这样, 此处省略一万句

import('@/vendor/Export2Excel').then(excel => {
        const tHeader = ['timestamp', 'title', 'type', 'importance', 'status']
        const filterVal = ['timestamp', 'title', 'type', 'importance', 'status']
        const data = this.formatJson(filterVal)
        excel.export_json_to_excel({
          header: tHeader,
          data,
          filename: 'table-list'
        })
        this.downloadLoading = false
      }) 

正是因为它的加载模式所以我要手动的给这个 MathJax 添加类型生成, 此时我第一个想到的是找到MathJax 插件提供的 npm type 包, 那么该如何搜索这个文件呢。此时我用 google 搜到一篇文章得到了答案
这篇文章的地址
文中的地址
在这里插入图片描述
我点击链接来到了一个页面,内容和我的期望完全相反, md 为什么不是一个搜索, 为什么让我去npm官网自己看。这个页面的意思是此页面已经不再需要了,直接去 npm官网 搜索对应的包就可以查看到对应的插件有没有提供相关类型。跟随我的脚本,咱们去 npm 官网转一圈
在这里插入图片描述
来到官网我们看到这个插件本身没有内置 ts 类型,而是另外提供了一个类型包。点击箭头所指,去寻找那束光。
在这里插入图片描述
画面一转我们来到了真正的西天,寻找到了真经。现在只要 npm installl,我们就可以重返大唐了。
在这里插入图片描述
我们安装完成对应的包,你以为一切都结束了?不,还有最重要的一步在你的 tsconfig.json 文件里面加上对应的代码, 让 ts 去读取你安装的包, 为什么要导入, 因为你的代码里面没有任何一个地方导入了这个包。所以要告诉 TypeScript 编译器应该引入哪些第三方库的类型声明。
在这里插入图片描述
fuck, 到此就结束了。取得真经又能怎样,不过是那殿堂之上人的工具人罢了。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1158134.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

2023-11-01 LeetCode每日一题(参加会议的最多员工数)

2023-11-01每日一题 一、题目编号 2127. 参加会议的最多员工数二、题目链接 点击跳转到题目位置 三、题目描述 一个公司准备组织一场会议,邀请名单上有 n 位员工。公司准备了一张 圆形 的桌子,可以坐下 任意数目 的员工。 员工编号为 0 到 n - 1 。…

高浓度工业废水处理设备有哪些

高浓度工业废水处理设备主要有以下几种: 水解酸化池:将有机废水通过水解、酸化作用,使其成为更易于生化降解的有机物。厌氧池:通过厌氧反应降解有机废水,产生沼气等可再利用资源。好氧池:将经过水解酸化或…

TikTok趋势分析:社交媒体的下一个风向标

社交媒体一直是信息传播和娱乐的前沿阵地,而TikTok(抖音)已然成为这一领域的新宠。其独特的短视频内容和强大的算法推荐系统吸引了数十亿用户,不仅改变了用户的娱乐习惯,还重新定义了社交媒体的面貌。本文将深入探讨Ti…

如何实现精确IP地址定位:技术和隐私的平衡

精确的IP地址定位可以为各种应用提供重要的信息,从网络安全到市场分析。然而,这一过程涉及到技术、法律和伦理等多方面的问题。本文将探讨如何实现精确IP地址定位,并同时平衡技术与隐私之间的挑战。 IP地址定位的背景 1. IP地址的基本概念 …

JAVA 实现PDF转图片(pdfbox版)

依赖: pdf存放路径 正文开始: pdf转换多张图片、长图 Test void pdf2Image() {String dstImgFolder "";String PdfFilePath "";String relativelyPathSystem.getProperty("user.dir");PdfFilePath relativelyPath &qu…

使用vue3+vite+elctron构建小项目介绍Electron进程间通信

进程间通信 (IPC) 是在 Electron 中构建功能丰富的桌面应用程序的关键部分之一。 由于主进程和渲染器进程在 Electron 的进程模型具有不同的职责,因此 IPC 是执行许多常见任务的唯一方法,例如从 UI 调用原生 API 或从原生菜单触发 Web 内容的更改。 在 …

【嵌入式开发学习02】esp32cam烧录human_face_detect实现人脸识别

Ubuntu20.04系统为esp32cam烧录human_face_detect 1. 下载esp-dl2. 安装esp-idf3. 烧录human_face_detect 如果使用ubuntu 16.04在后续的步骤中会报错如下,因为ubuntu 16.04不支持glibc2.23以上的版本(可使用strings /lib/x86_64-linux-gnu/libc.so.6 | …

抖音直播招聘报白与求职者互动的招聘方式企业或者人力资源公司

人力资源行业抖音招聘报白开始了,但是目前的市面的价格不一,很多人力资源公司最近想做抖音的直播报白,做直播待岗,因为最近刚好是招聘高峰期啊,企业需求大,赶上这一波,但是对目前市面上做抖音报…

数据分析实战 - 2 订单销售数据分析(pandas 进阶)

题目来源:和鲸社区的题目推荐: 刷题源链接(用于直接fork运行 https://www.heywhale.com/mw/project/6527b5560259478972ea87ed 刷题准备 请依次运行这部分的代码(下方4个代码块),完成刷题前的数据准备 …

虽迟但到,Postman终于支持Websocket接口了

📢专注于分享软件测试干货内容,欢迎点赞 👍 收藏 ⭐留言 📝 如有错误敬请指正!📢交流讨论:欢迎加入我们一起学习!📢资源分享:耗时200小时精选的「软件测试」资…

2023年9月CSDN客服月报|解决个3重大问题、5个次要问题、21个一般问题,处理1个用户需求

听用户心声,解用户之需。hello,大家好,这里是《CSDN客诉报告》第24期,接下来就请大家一同回顾我们9月份解决的bug~ 一、重大问题 1、【BI】BI数据延迟导致一周小结/榜单等数据不更新 反馈量:11 2、【UC…

idea 拉取代码

md老长时间 不用git 差点忘了 现在 演示 非常简单

八段流水线运行示意图

流水线如下图所示: 存储周期存取时间恢复时间, 即存取完数据后需要一定量的时间来恢复, 而低位交叉编址的流水线所利用的正是恢复时间 流水线与非流水线对比如下: 经典例题: 2013年408真题

本地打包jar方式

第一种&#xff1a;命令打包mvn clean package 或者使用idea的clean、package 该方式pom文件需要引入打包插件 <build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifact…

淘宝商品详情API接口(选品上架,数据分析,代购商城建站,erp系统商品数据选品,价格监控)

淘宝商品详情API接口&#xff08;item_get-获得taobao商品详情接口&#xff09;&#xff0c;淘宝API接口可获取到商品链接&#xff0c;商品ID&#xff0c;商品标题&#xff0c;商品价格&#xff0c;品牌名称&#xff0c;店铺昵称&#xff0c;sku规格&#xff0c;sku属性&#x…

C++设计模式_24_Visitor 访问器

Visitor 访问器也是属于“行为变化”模式。 文章目录 1. 动机( Motivation)2. 代码演示Visitor 访问器3. 模式定义4. 结构(Structure)5. 要点总结6. 其他参考 1. 动机( Motivation) 在软件构建过程中&#xff0c;由于需求的改变&#xff0c;某些类层次结构中常常需要增加新的行…

Techlink TL24G10 网络变压器 10G 基座单端口变压器

功能特征&#xff1a; 1、符合IEEE 802.3标准。 2、符合RoHS。 3、工作温度范围&#xff1a;0C至70C。 4、储存温度范围&#xff1a;-20C至125C。 封装&#xff1a;SOP24

横屏签字板手写签名并旋转90°转为横屏显示base64

手写签名并旋转90转为横屏显示base64 base64 data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAApsAAAF3CAYAAADq/IAAAAAAAXNSR0IArs4c6QAAIABJREFUeF7t3W3MPlldH/CvwLK7wEKNoiABZLvYiBqIdJGnQlor9gVBaAtJmzQsoI2wgKD4hqVNmrD7ohWhPFRSIgaKO0XTS8AVLb4AIVtFnaSiMPSktxoyVVWFxAF…

ios开发者(Apple Developer Program)如何续费

前言 会员资格到期之日前 30 天才可以进行续费 1. 联系官方 查询续费方式与入口 官网地址&#xff1a;https://developer.apple.com/ 2. Apple Developer App 进行续订 需要下载 Apple Developer 进入App内进行续订。 3. 如果没有续订按钮&#xff0c;联系官方更换订阅…

RTSP/Onvif安防视频平台EasyNVR接入EasyNVS,出现Login error报错的解决方法

安防视频监控汇聚EasyNVR平台&#xff0c;是基于RTSP/Onvif协议的安防视频平台&#xff0c;可支持将接入的视频流进行全平台、全终端分发&#xff0c;分发的视频流包括RTSP、RTMP、HTTP-FLV、WS-FLV、HLS、WebRTC等格式。为了满足用户的集成与二次开发需求&#xff0c;我们也提…