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

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

葱子5年前 (2021-02-22)其他4098

在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

相关文章

网站维护案例展示页面

网站维护案例展示页面

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

【紧急公告】宝塔面板发布紧急安全更新,请使用这些版本的站长立即更新

【紧急公告】宝塔面板发布紧急安全更新,请使用这些版本的站长立即更新

今天我的站长群有好友发了一则截图,内容是宝塔面板发布紧急更新,感觉事态比较严重。为了进一步确认是否属实,上宝塔官网看了下,确认属实。 本次涉及的漏洞版本为:Liunx版本7.4.2版本和windows版6.8版本 请正在使用以上版本的站...

四川移动光猫改桥接,不影响IPTV使用

四川移动光猫改桥接,不影响IPTV使用

在安装移动宽带的时候,安装师傅默认就在光猫上进行了拨号。这样移动光猫不仅负责光电转换,还要负责路由器、IPTV、wifi这些功能。在使用移动宽带的过程中,某些时候总是莫名的出现断流的情况。所以给家里换了个小米的ax6路由器,使用下来整体性能...

我的2016书单

心理学-行为学:《怪诞行为学》 互联网运营:《增长黑客》 职场:《不会汇报工作,还敢混职场》 市场营销:《定位》、《影响力》...

卸载重装vm12后,原来的虚拟机苹果MAC OS系统文件无法打开的解决办法

卸载重装vm12后,原来的虚拟机苹果MAC OS系统文件无法打开的解决办法

一、首先,我们讨论的讨论前提是: 1、版本号:VM10/11/12版本  2、条件:卸载VM再重装 3、已有完整的虚拟机系统文件   ...

nginx中如何处理带问号的url301跳转

示例代码如下: if ($request_uri ~* "^/wenda/\?q-(\d+).html$") { set $qid $1; rewrite .* https://www.aitiancheng...

发表评论

访客

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