本文介绍了JsDoc命名空间的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在使用JsDoc编辑js文件以获得干净的文档.我的结构很简单:

I'm editing a js file with JsDoc to get a clean documentation.My structure is quite simple:

/**
 * 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. 已创建Workshop名称空间
  3. Workshop.do仅通过其说明来记录,而没有参数
  4. Workshop.flyNow有据可查

有人知道为什么吗?

谢谢!

推荐答案

原因如下:

第一个函数未记录,因为它不属于任何可识别的名称空间.要解决此问题,您可以按如下所示创建虚拟名称空间:

First function is not documented because it does not belong to any recognisable namespace. To fix this issue, you could create a virtual namespace as follows:

/*** @命名空间数组*/

您可以按如下方式改进该功能的文档:

And you can improve the documentation of the function as follows:

/**
 * 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
}

结果如下

未记录参数,因为JSDoc解析器无法将 Workshop.doIt(...)识别为函数.可以使用 @function @method 标记来解决:

Arguments weren't documented because the JSDoc parser does not recognise Workshop.doIt( ... ) as a function. That can be fixed with the @function or @method tag:

/***做点很棒的事* @param {*} plep-我的超级参数!** @方法*/Workshop.doIt = myfunc;

结果看起来像这样:

这篇关于JsDoc命名空间的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

05-29 07:23