js注释规范基于jsdoc,写出的代码注释能够成功生成注释文档。
参数和返回值类型Type:string、boolean、number、object、array、function
文件注释
在文件头部增加文件注释
1 /**2 * @file LBS控制器3 * @author limingle4 * @copyright Synway SFE5 * @createDate 2017-10-16 09:40:116 */
变量注释
将关键的变量进行特殊注释,生成到文档中
1 /** 2 * @var {object} 3 * @desc 变量定义 4 * @property {string} a 属性a 5 * @property {string} b 属性b 6 */ 7 var foo = { 8 a: 'a', 9 b: 'b'10 }
常量注释
将关键常量进行特殊注释,生成到文档中,如果有默认值增加@default
属性
1 /**2 * @constant {string}3 * @default #0004 * @desc 常量定义5 */6 const COLOR_WHITE = '#fff';
方法注释
基本方法块注释
如果描述不能描述清楚,添加例子来描述。
1 /**2 * @method3 * @param {Type} data 目标对象4 * @returns {Type} 运营商名称5 * @desc 根据目标对象获取运营商6 */7 function matchedNumber(data){8 return '返回对象'9 }
基本方法块注释,注释过长
如果需要折行则在文本中使用<br/>
标签
1 /** 2 * @method 3 * @param {Type} data 目标对象 4 * 例: 5 * { 6 * target:手机号 7 * } 8 * @returns {Type} 运营商名称 9 * @desc 根据目标对象获取运营商10 */11 function matchedNumber(data){12 return '返回对象'13 }
基本方法块注释,带默认值
1 /** 2 * @method 3 * @param {Type} data={} 目标对象 4 * 例: 5 * { 6 * target:手机号 7 * } 8 * @returns {Type} 运营商名称 9 * @desc 根据目标对象获取运营商10 */11 function matchedNumber(data){12 return '返回对象'13 }
方法块注释特殊参数
如果描述不能描述清楚,添加例子来描述。
如果方法中有异常处理,标记异常处理注释如果有返回值增加@returns 如果没有省略此属性
1 /** 2 * @method 3 * @param {Type} data 目标对象 4 * @returns {Type} 运营商名称 5 * @desc 根据目标对象获取运营商 6 * @throws {string} 抛出'Error'异常 7 * @example 8 * add(1, 2); // 返回3 9 */10 function matchedNumber(data){11 return '返回对象'12 }
类的注释
默认情况先一个function就是一个类
ES6中使用Class来表示一个类 我们项目中使用class.js来实现类,在我们项目中使用类注释时需要在@class
后边增加类名,不要jsdoc无法自动识别类名 1 /**2 * @class3 * @classdesc 这是对myClass类的描述4 * @desc 这是对myClass类的构造函数的描述5 */6 function myClass() {7 ...8 }
或者
1 /**2 * @class LBSControllerCom3 * @classdesc LBS控制类4 * @desc 初始化ws5 */6 var LBSControllerCom = Com.extends({})
类的属性
类的属性和变量都会生成到jsdoc文档的Member模块中,在类中使用属性标识
1 var LBSControllerCom = Com.extends({2 /**3 * @member {string}4 * @desc 这样标识类的属性5 */6 foo1 : 'a',7 init: function() {}8 })
枚举注释
用于url列表或者颜色枚举值,一般用于配置文件中
1 /** 2 * @enum {number} 3 * @desc cgi常见的返回码 4 */ 5 var RETCODE = { 6 /** 7 * @desc 未登录 8 */ 9 NOT_LOGIN: 100000,10 /**11 * @desc 参数错误12 */13 PARAM_ERROR: 100001,14 /**15 * @type {string}16 * @desc 未知错误17 */18 UNKOWN_ERROR: 'unkown'19 }
参考链接: