我正在使用JSDoc生成器为我正在使用AMD模块的项目生成一些好看的文档。
在我的项目中,我有一些模块包含未导出的函数,因此无法从模块外部使用它们。生成JSDoc时,文档中不包含这些函数。
我创建了以下示例模块来说明我的示例:
/**
* Example foobar module
* @module foobar
*/
define([], function () {
/**
* Returns foo
* @returns {string} - The string "foo"
*/
function foo() {
return "foo";
}
return {
/**
* Returns bar
* @returns {string} - The string "bar"
*/
bar: function(){
return "bar";
}
}
});
当我为上述模块生成文档时,文档中只包含bar
函数,而我还希望将foo
函数包含在我的文档中并标记为私有。< / p>
有没有办法实现这个目标?感谢。
答案 0 :(得分:3)
注意:这是在JSDoc 3
上测试的这有两个部分:
/**
* Returns foo
* @memberOf module:foobar
* @returns {string} - The string "foo"
*/
function foo() {
return "foo";
}
默认情况下,不记录嵌套函数。为此,请添加@memberOf
指令。这迫使JSDoc将该函数记录为模块的成员。请注意module:
前缀 - 这是标准。
这应该会使foo
显示在模块Methods
的{{1}}部分下方。
现在,只需将该功能标记为私有。为此,请使用@private
指令。
foobar
您会注意到现在的文档不再包含方法/**
* Returns foo
* @private
* @memberOf module:foobar
* @returns {string} - The string "foo"
*/
function foo() {
return "foo";
}
。这是因为JSDoc默认忽略私有成员。要为私有成员生成代码,请使用foo
命令行选项。
-p
现在,foo在jsdoc foobar.js -p
中显示为(private, static)
方法,而foobar
只是bar
。