JSDoc --JS API文档生成器

JSDoc 是一个JavaScript的API文档生成器. 他可以让开发者在开发的过程中, 将编写的注释通过JSDoc工具生成一个api文档, 妈妈再也不用担心

JSDoc 是一个JavaScript的API文档生成器. 他可以让开发者在开发的过程中, 将编写的注释通过JSDoc工具生成一个api文档, 妈妈再也不用担心我不会写接口文档了.

这里是原作者GitHub项目的地址:链接

1.少废话先看东西

先看一下效果图吧:

/*** @file 这是一个jsDoc的测试demo* @author walker* @version 0.0.1*/

这是对整个js文件的描述
在这里插入图片描述
还有一些js文件中函数的效果图:
在这里插入图片描述
看了效果图,想必大概也了解这个工具究竟是用来做什么的,虽然界面没有那没漂亮,但整齐还是有的.

2.JSDoc的安装及使用

node不用说, 肯定是必备的. 项目作者还说了:"JSDoc支持稳定版本的Node.js 8.15.0及更高版本。您可以在全局或项目的node_modules文件夹中安装JSDoc ".
1) 新建一个项目, 在项目目录下初始化一下npm

npm init

2) 命令行装 JSDoc

// 先在全局安装
npm install -g jsdoc
// 当前项目安装
npm install --save-dev jsdoc

3) 新建一个要被编译的js文件
demo.js就是这个名字没错了

/*** @file 这是一个jsDoc的测试demo* @author walker* @version 0.0.1*//*** @description Book类, 代表一个书本* @param {string} title - 书本的标题.* @param {string} author - 书本的作者.*/
function Book(title, author) {this.title = title;this.author = author;
}
Book.prototype = {/*** @description 获取书本的标题* @returns {string|*}*/getTitle: function () {return this.title;},/*** @description 设置书本的页数* @param pageNum {number} 页数*/setPageNum: function (pageNum) {this.pageNum = pageNum;}
};/*** @description 这是一个有返回值得求和函数* @param {*} num1 加数* @param {*} num2 被加数* @returns {num|*} myTestVal 两数之和 */
var myTest2 = function (num1, num2) {var myTestVal;myTestVal = num1 + num2;return myTestVal;
}
myTest2(2, 2)/*** @description num2是一个没用的变量*/
var num2 = 2;// @description num是两数之和
var num;
/*** @description 这是一个没有返回值求和的函数* @param {*} num1 加数* @param {*} num2 被加数*/
var myTest = function (num1, num2) {num = num1 + num2;
}
myTest(1, 2)var testVal;
/*** @description 这是一个没有参数的函数*/
function test() {console.log("123")
}

4) 命令行编译文件:

jsdoc demo.js

5) 编译成功
编译成功后就会看到目录下多了一个out目录, 点击index.html从浏览器打开m, 就会看到上面的效果图了
在这里插入图片描述

3.下面介绍一些常见的JSDoc注释符

标签描述示例
@file文件描述。也可写作@overview或者@fileoverview@file description
@author指明作者@author description
@version指定类的版本@version info
@class指明类名,也写作@constructor@class class name or function name
@description描述当前函数或者类的作用,也可写作@desc@description functions
@param说明一个方法的参数,通常需要用{}指明数据类型@param {String} parameter name
@returns说明返回值类型,用{}指明返回值数据类型@returns {String} explanation
@type指定函数的返回类型
@deprecated指明一个过期的类或成员@deprecated description
@see指定一个到另一个主题的链接@see anchor
@extends指示一个类派生了另一个类。JSDoc通常自己就可以检测出这种信息,不过,在某些情况下则必须使用这个标
@exception标志一个类抛出的异常@exception exception-name explanation
@throws和 @exception标签一样.The @throws tag has the same meaning as the @exception tag.
{@link}插入一个到另一个主题的链接{@link name text}
@since标记当引入一个特定的变化时@since release
@final指示一个值是常量值. 记住JavaScript无法真正保证一个值是常量Constant value
@ignoreJSDoc忽略有这个标记的函数

ps:单行注释”//”不会被编译.
如果只想对函数进行描述,”//@description Book类, 代表一个书本”, 这样写是不行的,必须使用/** */注释

还有一些文档,详情请看链接
JSDoc3常用标签使用说明+示例: https://www.jianshu.com/p/c190dc9dd0d5
JSDoc在线手册:http://www.dba.cn/book/jsdoc/
JSDoc3: https://github.com/jsdoc/jsdoc
JSDoc英文手册:https://jsdoc.app/
JSDoc 注释规范:https://www.cnblogs.com/Garven/articles/7161797.html

最后:其实这只是传统项目的用法,在vue或者其他框架中.这样直接用肯定是不行的, 肯定有专门的插件可以配套使用, 随便搜了下,是有的,多多推荐.