1. 程式人生 > >JSDoc規範

JSDoc規範

js註釋規範基於jsdoc,寫出的程式碼註釋能夠成功生成註釋文件。 

引數和返回值型別Type:string、boolean、number、object、array、function

檔案註釋

在檔案頭部增加檔案註釋

1 /**
2  * @file LBS控制器
3  * @author limingle
4  * @copyright Synway SFE
5  * @createDate 2017-10-16 09:40:11
6  */

變數註釋

將關鍵的變數進行特殊註釋,生成到文件中

 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 #000
4  * @desc 常量定義
5  */
6 const COLOR_WHITE = '#fff';

方法註釋

基本方法塊註釋

如果描述不能描述清楚,新增例子來描述。

1 /**
2  * @method
3  * @param {Type} data 目標物件
4  * @returns {Type} 運營商名稱
5  * @desc 根據目標物件獲取運營商
6  */
7 function matchedNumber(data){
8     return '返回物件'
9 }

基本方法塊註釋,註釋過長

如果需要折行則在文字中使用<br/>標籤

 1 /**
 2  * @method
 3  * @param {Type} data 目標物件<br/>
 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  * @class
3  * @classdesc 這是對myClass類的描述
4  * @desc 這是對myClass類的建構函式的描述
5  */
6 function myClass() {
7     ...
8 }

或者

1 /**
2  * @class LBSControllerCom
3  * @classdesc LBS控制類
4  * @desc 初始化ws
5  */
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 }

參考連結: JSDoc 3