JSDoc:在另一个@param 中引用方法的@param

JSDoc: reference @param of method in another @param

我刚开始使用 JSDocs,找不到这个问题的答案。

假设我想写这个简单的函数:

function hasQ(array, item) {return array.includes(item);}

对于 JSDoc,我会标记为:

/**
* Another way to call array.includes(item);
* @param {Array} array
* @param {*} item to test if contained in array
* @returns
*/

有没有办法在第二个 @param 语句中标记 array 一词,使其引用第一个 @param

这只是一个玩具示例,但我希望它能使概念清晰。

没看到写相关参数的可能性(但看到parameters with properties)。但是你可以写描述 ;)

/**
 * @method
 * @param {Array} array - description for this param
 * @param {*} item - description for this param
 * @description Please write your description for Method
 * @returns {*|boolean}
 */
const hasQ = (array, item) => array.includes(item);

交叉引用参数

据我所知@param没有办法交叉引用参数。按照建议 here 你可以使用简单的英语。

作为部分解决方案,您可以使用 markdown 的反引号来突出显示 param 名称(如 here 所述),例如:

/**
 * @param {*} item to test if contained in `array`
 */

旁注:参考外部

JSDoc 中有一个内联 @linkexternal 资源的概念,我想它在这里很有用。你可以在你的描述中说清楚,例如你谈论 Array:

的函数 includes
/**
* Another way to call [Array's includes function]{@link external:Array#includes}
* @param {Array} array
* @param {*} item to test if contained in array
* @returns
*/
function hasQ(array, item) {
    return array.includes(item);
}

或者如果您更喜欢 link 而没有 text,只需删除第一行 [] 内的部分:

/**
 * Another way to call {@link external:Array#includes}
 */

阅读更多

如果您有兴趣阅读更多内容:

没有办法做到这一点。资料来源:https://github.com/jsdoc/jsdoc/issues/1145