当前位置:首页 > 其他 > 正文内容

UMD库(js库)撰写d.ts声明文件注意事项

葱子4年前 (2021-02-22)其他3543

在typescript中使用js库时,为了更友好的代码提示,需要为js库撰写d.ts声明文件。

一般来说js库大致可以分为3类:全局库、模块化库、UMD库。

这里重点记录一下UMD库的d.ts撰写注意事项。

识别UMD库

UMD模块是指那些既可以作为模块使用(通过导入)又可以作为全局(在没有模块加载器的环境里)使用的模块。 许多流行的库,比如 Moment.js,就是这样的形式。

UMD模块会检查是否存在模块加载器环境。 这是非常容易观察到的模块,它们会像下面这样:

(function (root, factory) { if (typeof define === "function" && define.amd) { define(["libName"], factory); } else if (typeof module === "object" && module.exports) { module.exports = factory(require("libName")); } else { root.returnExports = factory(root.libName); } }(this, function (b) {

如果你在库的源码里看到了typeof define,typeof window,或typeof module这样的代码,尤其是在文件的顶端,那么它几乎就是一个UMD库。

UMD库的d.ts声明文件注意事项:

  • 格式要求
    UMD库的d.ts声明文件需要满足以下格式,在VS code中和编译后才不会报错。
    declare namespace XXX{ }; export as namespace XXX; export=XXX;

  • 引入js库方式:
    import XXX=require("./xxx.js);

扫描二维码推送至手机访问。

版权声明:本文由葱子博客发布,如需转载请注明出处。

本文链接:https://www.aitiancheng.com/article-1579.html

相关文章

gitbook常用插件及模板变量使用技巧分享

归纳整理了一些在gitbook中比较实用的一些插件和相关配置,记录如下: { "plugins": [//插件信息 "back-to-top-button",//回到顶部...

老板强制要求员工转发朋友圈,算暴政吗?

老板强制要求员工转发朋友圈,算暴政吗?

问题描述:经常会看到一些创业公司甚至大公司,在拉新或者做品牌传播的时候,强制要求员工”拉100个用户“,或者”转发这篇公司的软文“到朋友圈,甚至其他私人社交媒体上。员工上班时间为公司打拼...

外卖CPS小程序被封后续,我所了解的一些套路

外卖CPS小程序被封后续,我所了解的一些套路

昨天的文章外卖CPS小程序被封,我的一些感想里面写了哪些类型的小程序容易被封号,今天继续展开讲一下,我所了解的一些套路。 1、微信会主动封小程序吗 对于大多数用户规模较小的小程序来讲,可能你提供的某些功能或服务并不符合微信的规则,但从我...

魔百和M101破除安装应用限制安装当贝市场【亲测有效】

魔百和M101破除安装应用限制安装当贝市场【亲测有效】

移动宽带送的新魔百和M101机顶盒,只能看IPTV,不能自由安装第三方软件。 基本上参考智能电视网的教程可以自己折腾出来,但是还是有些地方需要注意。 我手里的M101自带的系统没有【本地升级】的选项,在这个系统下,按照大神们分享的卡刷方...

php学习

作者:燕十八 链接:https://www.zhihu.com/question/39078661/answer/79607574 来源:知乎 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。 &n...

网站维护案例展示页面

网站维护案例展示页面

案例一:家电论坛服务项目: 1、将jdunion.com、jd-bbs.com使用301全局跳转到jdbbs.com 2、为家电论坛主站申请SSL证书并部署到服务器,配置http 301跳转到https 3、为家电论坛上传苹果版app到苹果...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。