使用 jsDoc 提升我们的开发效率

缘起

作为前端开发者目前使用最广泛的编程语言 JavaScript,也是有很多的缺点的!大家都直到 JavaScript 是一个弱类型的编程语言,这就造成了一问题,一个变量到底是什么类型的,只能到到程序运行的时候才只能确定!导致我们在写码的时候经常遇到一些关于变量类型的错误!并且当我们使用 vscode 写代码的时候,使用别人提供的 api,代码提示工具提示的非常好,而我们自己使用 js 编写一些函数的时候,往往确发现代码提示的不是很友好!今天我们来学习使用 jsDoc 来解决这个问题。

先看下图:

我们使用vscode 编写函数过程中,函数的形参是一个字符串,我们在写代码的时候vscode 并不知道形参的类型,导致我们在写代码的时候并不会得到很好的代码提示!

jsDoc

这个时候我们可以使用jsDoc来解决这个问题,vscode内置了jsDoc,我们只需要在函数上面输入/** 然后就会提示,然后直接按回车就好!

如下图:

此时,我们再使用username

就能看到所有的方法就能提示出来了,因为我们jsDoc生成的注释里面,执行的username参数的类型。

什么是jsDoc

jsDoc,顾名思义,jsDoc是一个用于JavaScript的API文档生成器,类似于Javadoc或phpDocumentor。他可以将文档注释直接添加到源代码中,就在代码本身旁边。JSDoc工具可以将扫描源代码并为您成一个HTML文档网站。

JSDoc注释通常应该放在代码被记录之前。为了被JSDoc解析器识别,每个注释必须以/**序列开头!

最简单的文档描述

/** 这是foo 函数的描述信息. */
function foo() {}

添加文档描述很简单,只需在文档注释中键入所需的内容就可以。

也可以使用特殊的JSDoc标签来提供更多信息。例如,如果函数是类的构造函数,则可以通过添加@constructor标记来指示这一点。

/*** 表示一本书* @constructor*/
function Book(title, author) {
}

使用jsDoc标签添加更多信息

/*** 表示一本书* @constructor* @param {string} title - 书的标题.* @param {string} author - 书的作者.*/
function Book(title, author) {}

param {string} title

这句话相当于给参数title增加了一个string类型!

这个类型是可以 string 、number、 boolean等基础数据类型!也可以是是个复杂数据类型。

param {object} title

/*** * @param {Object} book * @param {string} book.title* @param {string} book.author*/function buyBook(book) {    }

这样我们在使用book的使用就会提示出所有的属性和方法!

不过这样我们在每个函数内部都使用到了book的时候,都得在注释里面写三句话,使用起来就比较麻烦!

@typedef和@property

我们可以使用@typedef@property 定义一个类型,然后在其他地方使用

@return

当我们使用Book这个构造函数的时候,就会提示如下内容,并且在编写代码的时候vscode能自动识别title和author的类型,并且能提示对应的类型的方法!提示的最后面有个 :Book,这个提示是vscode自动识别出来函数的返回值!我们也可以使用@return 指定返回值的类型!

该标签就是用来指定函数的返回值,用法与@param类型,并且基本上这两个都会同时出现,与@param的区别在于,因为@return只会有一个,所以不会像前者一样还需要指定参数名。

/*** @return {number} 描述*/
function test () { }

Promise 类型的返回值处理

// 函数返回 Promise 实例的情况可以这么指定类型
/*** @return {Promise<number>}*/
function testPromise () {return new Promise((res) => {res(1)})
}

生成一个网站

使用jsDoc编写注释,也可以生成一个网站,网站内容是提取注释的内容

先全局安装jsDoc:

npm install jsdoc -g

然后输入命令:

jsdoc book.js

使用jsDoc来注释代码,带来的好处就是,维护者能够很清晰的看出函数的作用和参数的类型,做到代码即文档。可以不用写那么多的注释!

c:

npm install jsdoc -g

然后输入命令:

jsdoc book.js

使用jsDoc来注释代码,带来的好处就是,维护者能够很清晰的看出函数的作用和参数的类型,做到代码即文档。可以不用写那么多的注释!

在日常开发时,结合vscode的自动补全、动态提示功能,一定能让我们开发效率大大提升!

*陆荣涛前端学习交流Q群858752519
加群备注:CSDN推荐

使用 jsDoc 提升我们的开发效率相关推荐

  1. vscode 全项目替换_利用vscode插件提升前端国际化开发效率

    1. 起因 国际化是我们目前开发工作中非常重要的一环.对于老项目,我们可以通过便捷的方式对中文文案进行批量国际化:但是对于新增的功能或者模块开发,一般还是开发同学对文案逐个进行国际化.我自己的开发流程 ...

  2. 阿里宜搭助力服务中枢升级,提升10倍开发效率

    "真没想到,我在小程序上申请了'要一双拖鞋',不到半分钟功夫,机器人就把拖鞋送来了!"住在菲住布渴的王女士感叹到.在酒店管理和服务能力的建设中,菲住布渴始终致力于通过数字化.智能化 ...

  3. 如何用 IDEA 提升十倍开发效率?

    工欲善其事,必先利其器.想要提升编程开发效率,必须选择一款顺手的开发工具. JetBrains 公司提供了一系列功能强大.风格统一的开发工具,深受开发者喜爱.其中,IDEA 是面向 Java 开发的专 ...

  4. 使用ShellJS提升你的开发效率(一)

    Shelljs - Unix shell commands for Node.js Shelljs是Node.js下的脚本语言解析器,具有丰富且强大的底层操作(Windows/Linux/OS X)权 ...

  5. 天下武功,唯快不破:后端Java人怎么提升自己的开发效率?

    对一个 Java 后端程序员来说,MyBatis.Hibernate.Data Jdbc 等都是我们常用的 ORM 框架.它们有时候很好用,比如简单的 CRUD,事务的支持都非常棒.但有时候用起来也非 ...

  6. 谈谈前后端分离实践中如何提升RESTful API开发效率

    点击上方"朱小厮的博客",选择"设为星标" 后台回复"书",获取推荐书籍 来源:33h.co/edZR 团队内部RestAPI开发采用设计驱 ...

  7. 几个提升Go业务开发效率的流行框架和开源库

    最近总有一些初学Go语言的小伙伴问我在业务开发中一般都使用什么web框架.开源中间件:所以我总结了我在日常开发中使用到的库,这些库不一定是特别完美的,但是基本可以解决日常工作需求,接下来我们就来看一下 ...

  8. 提升你的开发效率,10 个 NPM 使用技巧

    对于一个项目,常用的一些npm简单命令包含的功能有:初始化一个文件夹( npm init ),下载npm模块( npm install ),创建测试( npm test ) 和自定义脚本( npm r ...

  9. axure 后台模板_大气漂亮美观的三个网站后台数据管理模板 大大提升你的开发效率...

    今天整理了三个我做项目经常使用的三个网站后台模板,这三个模板都是开源的,可以下载商用,可基于它们开发任何网站,做为后台管理数据.这样能为你开发后台功能节约大量的时间. 一.ok-admin 一个很赞的 ...

最新文章

  1. javac、jar使用实录
  2. JAVA socket编程实例 转载
  3. vivado中的rtl中电路图无发生成_FPGA零基础学习:数字电路中的组合逻辑
  4. Community Server系列之四:Ajax在CS2.0中的应用1
  5. Jquery 寻找父、子、兄弟节点
  6. Typora+PicGo+github搭建免费稳定图床写博客如行云流水(mac+window)
  7. Cortex-M0(5)---Cortex-M0【中断向量表】【中断控制和系统控制
  8. 基于单片机的自动加热水壶控制器代码_应用于实时温度控制的单片机设计
  9. 同一页面中加载两个相同的控件,结果只能出来一个,这是为什么
  10. 目标检测(三) Fast R-CNN
  11. MLOps- 吴恩达Andrew Ng Data Definition and Baseline Week3 实验作业
  12. [读书笔记]《Windows游戏编程之从零开始》(零)
  13. php个人发卡搭建教程,个人发卡平台ZFAKA程序搭建详细教程
  14. 看刘未鹏先生的博客的一些摘记
  15. Ambarella公司申请首次公开招股
  16. 微火上线ai绘画小程序搭建系统,ai绘画小程序源码触手可及
  17. 奶茶果茶饮品店数字化转型| 奶茶店小程序 | 餐饮外卖系统
  18. python 按条件筛选行_Python之根据条件筛选特定行
  19. MySQL单表查询总结
  20. Android跟我一起来开发--微影之架构补充篇

热门文章

  1. jsp页面 用c标签来循环遍历数据库某表中里面的数据 但是页面不显示数据
  2. android 自定义 snackbar,自定义顶部SnackBar
  3. TCP的CLOSING状态发生条件
  4. 张鑫旭html入门,学习张鑫旭前辈课程的有关笔记(二)
  5. 说一下ArrayList和和LinkedList区别
  6. 解决java.sql.SQLException: Access denied for user ‘root‘@‘localhost‘ (using password: YES)
  7. 如何更改R默认工作目录:永久或临时
  8. 安全的“儿童智能手表”才称得上“真智能
  9. 全球知名灵异照片大集合
  10. python实现将pdf文件转为jpg图片文件的总结