我正在编写一个CommonJS模块,并将我的所有方法定义为模块中的函数定义。然后在module.exports
对象中定义这些方法。这都是用es6编写的。
但是,使用我的注释,生成的文档只链接到对象定义,而不显示方法的实际文档。
// file named utils.js
const regular = require('regular');
const isEmpty = require('lodash.isempty);
/**
* @memberof utils
* @param {object} obj The value to check if it is an object or not
* @returns {boolean}
*/
function isTrueObject(obj) {
return !Array.isArray(obj) && typeof obj === 'object' && !isEmpty(obj) ;
}
/**
* @memberof utils
* @param {*} val
* @returns {boolean}
*/
function isNumberLike(val) {
return isNumber(val) || regular.number.test(val);
}
/**
* @module utils
*/
module.exports = {
isTrueObject,
isNumberLike
};
如果我按原样保留module.exports
属性名称,则不会生成任何文档,但utils
的空白页除外:
我必须执行以下操作才能获得正确的文档:
// file named utils.js
const regular = require('regular');
const isEmpty = require('lodash.isempty);
/**
* @memberof utils
* @param {object} obj The value to check if it is an object or not
* @returns {boolean}
*/
function isTrueObject(obj) {
return !Array.isArray(obj) && typeof obj === 'object' && !isEmpty(obj) ;
}
/**
* @memberof utils
* @param {*} val
* @returns {boolean}
*/
function isNumberLike(val) {
return isNumber(val) || regular.number.test(val);
}
/**
* @module utils
*/
module.exports = {
/**
* @function
* @param {object} obj The value to check if it is an object or not
* @returns {boolean}
*/
isTrueObject,
/**
* @function
* @param {*} val
* @returns {boolean}
*/
isNumberLike
};
这显然不太理想,因为文档不在实际功能声明之上,这很容易导致文档重复。是否有不同的方法来链接这些并生成相同的文档?
我尝试了以下内容,但我得到的只是代码本身的链接,没有实际的文档输出:
/**
* @module utils
*/
module.exports = {
/** @see module:utils#isTrueObject */
isTrueObject,
/** @borrows isNumberLike as isNumberLike */
isNumberLike
};
使用@see
或@borrow
生成以下内容:
这显然不是理想的输出。
有没有人知道如何正确记录这一点而不必重复?
答案 0 :(得分:0)
将@module
声明移到文件顶部,将@memberof utils
替换为@static
,产生预期结果:
// file named utils.js
/**
* @module utils
*/
const regular = require('regular');
const isEmpty = require('lodash.isempty);
/**
* @static
* @param {object} obj The value to check if it is an object or not
* @returns {boolean}
*/
function isTrueObject(obj) {
return !Array.isArray(obj) && typeof obj === 'object' && !isEmpty(obj) ;
}
/**
* @static
* @param {*} val
* @returns {boolean}
*/
function isNumberLike(val) {
return isNumber(val) || regular.number.test(val);
}
module.exports = {
isTrueObject,
isNumberLike
};