有没有办法让JSDOC在函数内部显示变量而不在函数前使用 @namespace 注释?
我制作了一个小测试对象,但它只显示最后一个函数的内部变量 k ,它被声明为命名空间。我想使用 @memberof!注释和完全 @name 注释会在下面第二个方法中显示内部变量,名为 diff 。我在命令上运行jsdoc3,选项 - 访问“all”--explain 。
以下是测试对象的代码:
(function(){
"use strict";
/**
* @namespace
* @type {{}}
*/
window.myFunctions = {};
/**
* Return the sum
* @param {number} i
* @param {number} j
* @return {number}
*/
window.myFunctions.sum = function(i, j) {
/** @type {number} */
var k = i + j;
return k;
};
/**
* Return the difference i - j
* @param {number} i
* @param {number} j
* @return {number}
*/
window.myFunctions.diff = function(i, j) {
/**
* @inner
* @memberof! window.myFunctions.diff
* @type {number}
* @name window.myFunctions.diff~k
*/
var k = i - j;
return k;
};
/**
* Return the product
* @namespace
* @param {number} i
* @param {number} j
* @return {number}
*/
window.myFunctions.multiply = function(i, j) {
/** @type {number} */
var k = i * j;
return k;
}
});
答案 0 :(得分:1)
我注意到你的代码在IIFE中,你应该read this issue
答案 1 :(得分:1)
如果将AMD模块定义为返回对象的函数 在文字中,使用@exports标记来记录模块的名称。 JSDoc 将自动检测对象的属性是否为其成员 模块。
因此,您的代码示例可能会标记为:
/**
* functions module.
* @module my/functions
*/
(function(){
"use strict";
/**
* @namespace
* @type {{}}
* @exports my/functions
* @name myFunctions
*/
window.myFunctions = {};
/**
* Return the sum
* @param {number} i
* @param {number} j
* @return {number}
* @exports my/functions
* @name sum
*/
window.myFunctions.sum = function(i, j) {
/**
* @type {number}
* @exports my/functions
* @name k
*/
var k = i + j;
return k;
};
/**
* Return the difference i - j
* @param {number} i
* @param {number} j
* @return {number}
* @exports my/functions
* @name diff
*/
window.myFunctions.diff = function(i, j) {
/**
* @inner
* @memberof! window.myFunctions.diff
* @type {number}
* @name window.myFunctions.diff~k
* @exports my/functions
*/
var k = i - j;
return k;
};
/**
* Return the product
* @namespace
* @param {number} i
* @param {number} j
* @return {number}
* @exports my/functions
* @name multiply
*/
window.myFunctions.multiply = function(i, j) {
/**
* @type {number}
* @exports my/functions
* @name k
*/
var k = i * j;
return k;
}
});