首页 > 其他分享 >jsDoc npm 模块任务

jsDoc npm 模块任务

时间:2024-09-20 21:02:43浏览次数:9  
标签:npm typedef AM state jsdoc 模块 jsDoc

目前我正在工作/维护遗留的 js/react 应用程序,没有办法重新工作到 typesript,这就是为什么我打开 jsdoc 作为 js 现有的开发时类型系统。 太长了;typescript npm 模块由 jsdoc 制作,useduck 在 70loc 下带回了 redux 的黄金时代。该模块在开发时的主要用例,帮助您的复杂状态保持类型安全。const [state, quack] = useduck(reducer, initialstate, actionsmap);登录后复制jsdoc-duck 从 typescript 到 jsdoc 之路当我创建了一个轻量级的 react state npm 库时,我对 typescript 的体验更加深入了:react-state-factoryuser declared state and actions types -&gt; usestatefactory -&gt; [state, dispatchedactoioncollection]登录后复制 测试 jsdoc 限制在我开始使用一些 jsdoc 注释来帮助我的工作之后,下一步有点更加大胆:将此模块重新设计为 jsdoc。乍一看,这是一项不可能完成的任务。但在花了几周时间了解 jsdoc 后,我看到了一些曙光。 恐怖类型系统:减速机在某个点上,当我尝试编写一个reducer函数时,我发现了jsdoc能力的硬限制,结果是一个quack,但当然它启动了一个空的{}。因此,只有reducer运行结束时才创建了正确的quack,因为该类型对包含所有请求的键的对象感到好奇。所以这个问题到现在我都无法解决,如果有人能给我一个好主意,我该如何解决它,请与我分享或作为合作者加入这个模块开发。 另一个陷阱:没有 ts 的模块中没有类型一开始我创建了一个 js 文件,其中包含所有必要的 jsdoc @typedef,迟早它会起作用。这就是我认为为他们创建节点模块的一步。但可悲的事实是,包含导出类型的 npm 模块不能仅与 jsdoc 一起使用,因此必须编译 d.ts,因此最后 jsdoc 模块不要说 100% js,而是构建也使用 typescript。 jsdoc-duck 模块中的@typedef正如您在 dev.to 论坛中所认识到的,语法高亮无法识别 jsdoc。其他错误的事情在我的测试中,如果你只写一行,这个 @typedef 就会起作用,所以它违背了干净的代码。在我的下一篇博文中,我将写的是这个库的具体用例,排序:使用 usereducer 简化和类型安全反应状态处理。/** * @template T - Payload Type * @typedef {T extends { type: infer U, payload?: infer P } ? { type: U, payload?: P } : never} ActionType */// @ts-ignore/** @template AM - Actions Map @typedef {{ [K in AM['type']]: K }} Labels */// @ts-ignore/** @template AM - Actions Map @typedef {{ [T in AM["type"]]: Extract<am type: t> extends { payload: infer P } ? (payload: P) =&gt; void : () =&gt; void }} Quack *//** * @template ST - State * @template AM - Actions Map * @typedef {(state: ST, action: AM) =&gt; ST} Reducer */</am>登录后复制 以上就是jsDoc npm 模块任务的详细内容,更多请关注我的其它相关文章!

标签:npm,typedef,AM,state,jsdoc,模块,jsDoc
From: https://www.cnblogs.com/aow054/p/18423267

相关文章

  • 一文详解Unity下RTMP推送|轻量级RTSP服务|RTSP|RTMP播放模块说明
    技术背景好多开发者,对Unity下的模块,不甚了解,实际上,除了Windows/Linux/Android/iOSNativeSDK,大牛直播SDK发布了Unity环境下的RTMP推流|轻量级RTSP服务(Windows平台+Linux平台+Android平台)和RTMP|RTSP直播播放(Windows、Linux、Android和iOS平台全覆盖)低延迟的解决方案。目前,大牛直播......
  • JavaScript 模块
    现在我们不再将所有js写在一个文件中并发送给客户端。今天,我们将代码编写到模块中,这些模块之间共享数据并且更易于维护。约定是使用驼峰命名法命名模块。我们甚至可以通过npm存储库将第3方模块包含到我们自己的代码中,例如jquery、react、webpack、babel等。最终的捆绑包是......
  • 大牛直播SDK核心音视频模块探究
    技术背景视沃科技旗下”大牛直播SDK”,始于2015年,致力于传统行业极致体验的音视频直播技术解决方案,产品涵盖跨平台的实时RTMP推流、RTMP/RTSP直播播放(支持RTSP|RTMPH.265,EnhancedRTMPH.265)、GB28181设备接入、推送端播放端实时录像、多路流媒体转发(RTSP转RTMP,RTMP转RTMP,RTSP|R......
  • python模块之json
    json模块(1)python中的json格式是轻量级的文本数据交互格式(2)json和字典以一样一、将python数据类型换成字典json.dump  json.dumps二、将json格式转换成python类型(1)dumps 将python类型转换成json格式importjsond={"name":"zs","age":18}print(type(d))#<class'di......
  • python模块之xlrd
    一、xlrd模块1、下载方式(1)方式一在dos下pip install  xlrd==1.2.0方式二:File-settings-project:pythonsssss-+-搜索xrldimportxlrddata=xlrd.open_workbook(r"C:\Users\Administrator\Desktop\aa.xls")print(data.sheet_names())#获取页面名称['Sheet1','......
  • python模块1
    python模块1、python的模块就是一个python文件,后缀.py包含了Python对象定义和Python语句。模块让你能够有逻辑地组织你的Python代码段。把相关的代码分配到一个模块里能让你的代码更好用,更易懂2、python的模块中可以写:函数、类、变量、代码3、模块的导入a、python自带的模......
  • python模块2
    python模块一、python的re模块1、正则匹配,使用re模块2、正则表达式是一种对字符和特殊字符操作的逻辑公式,用正则表达字符来过滤的逻辑3、re正则表达式作用:快速高效查找和分析字符,进行匹配如:查找、比对、匹配、替换、插入、添加、删除等二、认识正则表达式的特殊元素:\d:数字......
  • 【Python-GUI图形化界面-PyQt5模块(2)】——QApplication核心模块
     本文旨在带大家学习Python中的一种GUI图形化界面模块——PyQt5模块,将为大家详细了解PyQt5模块中函数的参数和使用:一、PyQt5简介PyQt是Qt框架的Python语言实现,由RiverbankComputing开发,是最强大的GUI库之一。官方网站:www.riverbankcomputing.com、 本文比较倾向于教会......
  • IO模块:PLC数据采集的坚实后盾
    在现代工业自动化浪潮中,可编程逻辑控制器(PLC)作为控制系统的中枢,其数据采集与处理能力直接关乎生产线的效率与品质。而IO模块,作为PLC与外部世界的桥梁,其重要性不言而喻。明达技术,作为行业先锋,其IO模块在PLC数据采集领域的卓越表现,不仅强化了系统性能,更赋予了工业自动化前所未有的灵......
  • java pom两个模块需要互相引用怎么办
    1.JavaPOM模块化是什么在Java项目中,特别是在使用Maven作为构建工具时,"POM模块化"是一个重要的概念,它指的是将大型项目拆分成多个更小、更易于管理的模块(或称为子项目)。每个模块都有自己的pom.xml文件,该文件定义了模块的构建配置,包括依赖关系、插件、目标平台等。1.1POM(Project......