2015-12-21 207 views
3

我正在使用JsDoc编辑js文件以获取干净的文档。 我的结构非常简单:JsDoc命名空间

/** 
* Finds an object 
* @param {string} prop - Property 
*/ 

Array.prototype.findObject = function _findObj(prop, val){ 
    // blablabla 
} 


function myfunc(plep){ 
    // does something 
} 

/** 
* Workshop Namespace 
* @namespace 
*/ 

var Workshop = {}; 


/** 
* Does something great 
* @param {*} plep - My super param! 
*/ 
Workshop.doIt = myfunc; 

/** 
* It works! 
* @param {string} fly - my flying param 
*/ 
Workshop.flyNow = function _flyN (fly){ 
    // fly! 
} 

然而,

  1. 的文档第一功能不显示。
  2. 工作室命名空间创建
  3. Workshop.doIt由其描述只记录,参数不
  4. Workshop.flyNow是有据可查的

有谁知道为什么吗?

谢谢!

回答

1

Array是否存在符号?如果不是,那么这就是没有得到记录的原因。

关于参数,你确定*是一个有效的类型?你可以试试Object

1
/** 
* Finds an object 
* @param {string} prop - Property 
*/ 

Array.prototype.findObject = function _findObj(prop, val){ 
    // blablabla 
} 

/** 
* Does something great 
* @param {*} plep - My super param! 
*/ 
function myfunc(plep){ 
    // does something 
} 

/** 
* Does something great 
* @param {*} plep - My super param! 
* @function 
*/ 
var alternativeDoIt = function myfunc2(plep){ 
// does the same thing 
} 

/** 
* Workshop Namespace 
* @namespace 
*/ 

var Workshop = {}; 


/** 
* Does something great 2 
* @function (<== check if this is useful) 
*/ 
Workshop.doIt = myfunc; 

Workshop.doIt2 = alternativeDoIt; 

/** 
* It works! 
* @param {string} fly - my flying param 
*/ 
Workshop.flyNow = function _flyN (fly){ 
    // fly! 
} 
1

这里的原因:

第一个功能是未记录,因为它不属于任何可识别的命名空间。要解决这个问题,可以按如下方式创建一个虚拟命名空间:

/** * @namespace Array */

而且可以提高函数的文档如下:

/** 
* Finds an object. 
* 
* @param {string} prop Property name. 
* @param {string|number|function|object} val Value. 
* 
* @function findObject 
* @memberof Array# 
*/ 
Array.prototype.findObject = function _findObj (prop, val) { 
    // blablabla 
} 

下面 enter image description here

结果

3.

参数没有记录,因为JSDoc解析器作为一项功能,不会识别Workshop.doIt(...)。这可以固定与@function@method标签:

/** * Does something great * @param {*} plep - My super param! * * @method */ Workshop.doIt = myfunc;

而结果是这样的:enter image description here