当前位置:首页 > 科技  > 软件

前端开发何必执着于Typescript?Jsdoc一样很好用

来源: 责编: 时间:2023-08-09 23:02:18 415观看
导读为什么很多公司执着于typescript?因为typescript支持很多JS不支持的特性,正确的使用typescript,可以使你的代码更易于维护。最主要的是可以给JS添加类型,使编辑器的提示更智能。但是,typescript是很复杂的一门语言,很多开发

V4s28资讯网——每日最新资讯28at.com

为什么很多公司执着于typescript?因为typescript支持很多JS不支持的特性,正确的使用typescript,可以使你的代码更易于维护。V4s28资讯网——每日最新资讯28at.com

最主要的是可以给JS添加类型,使编辑器的提示更智能。V4s28资讯网——每日最新资讯28at.com

但是,typescript是很复杂的一门语言,很多开发者并不能很好的运用typescript,甚至很多人是被迫的,他们内心是反感使用typescript的,导致代码写的乱七八糟。V4s28资讯网——每日最新资讯28at.com

事实上,JS也有很多优势是typescript所不具备的,比如:JS的灵活性很高。V4s28资讯网——每日最新资讯28at.com

如果我告诉你,有一种工具,完全可以像写typescript一样写JS,你会用吗?V4s28资讯网——每日最新资讯28at.com

我说的这个工具就是jsdoc,我们可以叫它JS文档注释。它的目的也是为JS添加类型的,只是以注释的形式添加的,它有固定的语法。V4s28资讯网——每日最新资讯28at.com

我就以项目中的代码来举例吧,大家看如下文档注释。其中,@template 用于声明泛型类型,@typedef 用于定义一个类型。V4s28资讯网——每日最新资讯28at.com

在这里,我们定义了一个泛型T和一个名叫TreeNode的类型。TreeNode包含2个确定的字段:id和children,剩下的字段由泛型T确定。V4s28资讯网——每日最新资讯28at.com

/** * @template T * @typedef {T & {id: number, children: TreeNode<T>[]}} TreeNode */

下面,我们来测试一下这个类型。V4s28资讯网——每日最新资讯28at.com

如下图,我们声明一个变量node,使用@type指定为TreeNode类型,尖括号中间的对象类型替代了我们定义中的泛型T。V4s28资讯网——每日最新资讯28at.com

当我们键入点号后,编辑器给出了非常智能的提示。大家说,是不是很酷?V4s28资讯网——每日最新资讯28at.com

V4s28资讯网——每日最新资讯28at.com

这是真实项目中的代码,一个生成ID的函数。V4s28资讯网——每日最新资讯28at.com

使用@param可以为函数参数指定类型,在这里,我们为tree指定了TreeNode数组类型。使用@returns可以指定函数返回值的类型。V4s28资讯网——每日最新资讯28at.com

/** * @param {TreeNode<{}>[]} tree * @returns {number} */export const genId = tree => {  return (function eachFn (data) {    return data.reduce((t, item) => {      return Math.max(        t,        item.id || 0,        item.children ? eachFn(item.children) : 0      )    }, 0)  })(tree) + 1}

如下图,由于我们给tree指定了类型,当键入点号后,编辑器知道data是数组类型,正确地给出了数组的成员提示。这使我们在键入时,不易出错。V4s28资讯网——每日最新资讯28at.com

V4s28资讯网——每日最新资讯28at.com

当我们鼠标指针移入函数名时,编辑器给出了该函数的提示。告诉我们,该函数接收一个TreeNode数组参数tree,返回数值类型结果。V4s28资讯网——每日最新资讯28at.com

V4s28资讯网——每日最新资讯28at.com

现在,大家觉得jsdoc怎么样?是不是很好用?酷不酷?V4s28资讯网——每日最新资讯28at.com

如果大家开发用的语言是JS,我建议大家学学jsdoc。jsdoc的用法远比本文介绍的要多,它很强大,但语法却很简单易学。V4s28资讯网——每日最新资讯28at.com

本文链接:http://www.28at.com/showinfo-26-5116-0.html前端开发何必执着于Typescript?Jsdoc一样很好用

声明:本网页内容旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。邮件:2376512515@qq.com

上一篇: Rust采用率不断提高,2022年度Rust调查报告出炉!

下一篇: Go1.21 那些事:泛型库、for 语义变更、统一 log/slog、WASI 等新特性,你知道多少?

标签:
  • 热门焦点
  • Redmi Buds 4开箱简评:才199还有降噪 可以无脑入

    在上个月举办的Redmi Note11T Pro系列新机发布会上,除了两款手机新品之外,Redmi还带来了两款TWS真无线蓝牙耳机产品,Redmi Buds 4和Redmi Buds 4 Pro,此前我们在Redmi Note11T
  • 石头自清洁扫拖机器人G10S评测:多年黑科技集大成之作 懒人终极福音

    科技圈经常能看到一个词叫“缝合怪”,用来形容那些把好多功能或者外观结合在一起的产品,通常这样的词是贬义词,但如果真的是产品缝合的好、缝合的实用的话,那它就成了中性词,今
  • 7月安卓手机好评榜:三星S23Ultra好评率第一

    性能榜和性价比榜之后,我们来看最后的安卓手机好评榜,数据来源安兔兔评测,收集时间2023年7月1日至7月31日,仅限国内市场。第一名:三星Galaxy S23 Ultra好评率:95.71%在即将迎来新
  • 自动化在DevOps中的力量:简化软件开发和交付

    自动化在DevOps中扮演着重要角色,它提升了DevOps的效能。通过自动化工具和方法,DevOps团队可以实现以下目标:消除手动和重复性任务。简化流程。在整个软件开发生命周期中实现更
  • 大厂卷向扁平化

    来源:新熵作者丨南枝 编辑丨月见大厂职级不香了。俗话说,兵无常势,水无常形,互联网企业调整职级体系并不稀奇。7月13日,淘宝天猫集团启动了近年来最大的人力制度改革,目前已形成一
  • 当家的盒马,加速谋生

    来源 | 价值星球Planet作者 | 归去来自己&ldquo;当家&rdquo;的盒马,开始加速谋生了。据盒马官微消息,盒马计划今年开放生鲜供应链,将其生鲜商品送往食堂。目前,盒马在上海已经与
  • 2299元起!iQOO Pad明晚首销:性能最强天玑平板

    5月23日,iQOO如期举行了新品发布会,除了首发安卓最强旗舰处理器的iQOO Neo8系列新机外,还在发布会上推出了旗下首款平板电脑——iQOO Pad,其最大的卖点
  • Android 14发布:首批适配机型公布

    5月11日消息,谷歌在今天凌晨举行了I/O大会,本次发布会谷歌带来了自家的AI语言模型PaLM 2、谷歌Pixel Fold折叠屏、谷歌Pixel 7a手机,同时发布了Androi
  • “买真退假” 这种“羊毛”不能薅

    □ 法治日报 记者 王春   □ 本报通讯员 胡佳丽  2020年初,还在上大学的小东加入了一个大学生兼职QQ群。群主&ldquo;七王&rdquo;在群里介绍一些刷单赚
Top