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

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

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

在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

相关文章

万网企业邮箱与阿里云邮箱的SMTP、POP设置【转】

万网企业邮箱与阿里云邮箱的SMTP、POP设置【转】

1、万网企业邮箱SMTP、POP设置 邮箱管理网址:http://qiye.aliyun.com,其中万网的邮箱也可以配置成自己的域名邮箱,比方mail.unvs.cn,这个不影响下面的设置, 万网企业邮箱POP、SMTP、I...

可以为你提供这些服务:discuz网站维护、搬家、处理挂马、服务器环境配置

经常帮各种站长做discuz快照劫持的处理,也分享了很多相关的教程文章,你目前搜索discuz快照劫持相关的文章很多都是我分享的。 部分站长通过我的分析文章基本都能处理好快照劫持的问题。 相关文章汇总如下:https://www.ait...

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

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

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

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

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

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

win10多屏分别设置壁纸和自定义切换方式

win10多屏分别设置壁纸和自定义切换方式

在公司里面一直都是笔记本电脑配外接显示器,用起来是真香。 最近本来打算再家里也买一块显示器来自己用,正巧朋友家里有一块闲置的显示器,我就接过来了。 大屏幕的显示效果确实不错,看电影看网页,干工作可视区域都比笔记本屏幕舒服很多。 接着就...

win10下快速访问华为荣耀路由器的USB移动硬盘

win10下快速访问华为荣耀路由器的USB移动硬盘

去年买荣耀笔记本送了一款荣耀路由器,型号是ws831,在路由器上刚好带了一个USB接口。之前一直没有时间来试试这个功能,最近想起来测试一下。 在测试过程中,发现在win10下访问荣耀路由器的USB移动硬盘有些问题。通过在华为花粉论坛...

发表评论

访客

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