Javascript 让JSDoc为模块中的私有(非导出)函数生成文档

Javascript 让JSDoc为模块中的私有(非导出)函数生成文档,javascript,jsdoc,Javascript,Jsdoc,我正在使用JSDoc生成器为我使用AMD模块的项目生成一些好看的文档 在我的项目中,我有一些模块包含未导出的函数,因此无法从模块外部使用它们。生成JSDoc时,文档中不包括这些函数 我创建了以下示例模块来说明我的示例: /** *foobar模块示例 *@module foobar */ 定义([],函数(){ /** *返回foo *@返回{string}-字符串“foo” */ 函数foo(){ 返回“foo”; } 返回{ /** *返回条 *@返回{string}-字符串“bar” */

我正在使用JSDoc生成器为我使用AMD模块的项目生成一些好看的文档

在我的项目中,我有一些模块包含未导出的函数,因此无法从模块外部使用它们。生成JSDoc时,文档中不包括这些函数

我创建了以下示例模块来说明我的示例:

/**
*foobar模块示例
*@module foobar
*/
定义([],函数(){
/**
*返回foo
*@返回{string}-字符串“foo”
*/
函数foo(){
返回“foo”;
}
返回{
/**
*返回条
*@返回{string}-字符串“bar”
*/
bar:function(){
返回“bar”;
}
}
});
当我为上述模块生成文档时,文档中只包含
bar
功能,而我也希望文档中包含
foo
功能,并将其标记为private

有没有办法做到这一点?谢谢。

注意:这是在JSDoc 3上测试的

这有两个部分:

  • 获取JSDoc以生成嵌套函数的代码
  • 让JSDoc为私有成员生成代码
获取JSDoc以生成嵌套函数的代码 默认情况下,不会记录嵌套函数。为此,请添加
@memberOf
指令。这迫使JSDoc将函数作为模块的一个成员记录下来。请注意
模块:
前缀-这是一个标准

这将使
foo
显示在模块
foobar
Methods
部分下

让JSDoc为私有成员生成代码 现在,只需将函数标记为private。为此,请使用指令

/**
 * Returns foo
 * @private
 * @memberOf module:foobar
 * @returns {string} - The string "foo"
 */
function foo() {
    return "foo";
}
您将注意到,现在的文档再次不包含方法
foo
。这是因为JSDoc默认情况下忽略私有成员。要同时为私有成员生成代码,请使用
-p
命令行选项

jsdoc foobar.js -p

现在,foo在
foobar
中显示为
(私有、静态)
方法,而
bar
只是
(静态)
,干杯!我还不知道-p标志!我该如何告诉JSDOC它是该模块中某个类的成员?我尝试过memeberof module:Foo.Bar和memeberof Foo.BarI尝试过将
private
标志添加到API中,但它不起作用:
jsdoc2md.render({files:'./dist/test.js',private:true})。然后(console.log)
知道为什么吗?同样的问题是,private既不能作为命令行选项,也不能在配置文件中工作。。。jsdoc是刚刚坏了还是被移除了?
jsdoc foobar.js -p