2012-10-16 45 views
4

我试图找到如何让JSDoc3自动生成到其他模块的类的链接。 我觉得很难用文字解释,所以让我举一些例子。下面的脚本生成预期的输出:JSDoc3&NodeJS链接到模块的类型

/** 
* @constructor 
*/ 
var SomeClass = function(){} 

/** 
* @param {SomeClass} someParam description 
*/ 
var someFunc = function(someParam){} 

也就是说,JSDoc3正确生成从someFunc的参数列表的SomeClass的类描述的链接。然而,当我把SomeClass的外部模块中我似乎无法让JSDoc3生成链接:

/** 
* @file SomeClass.js 
* @module SomeClass 
*/ 

/** 
* @constructor 
*/ 
exports.SomeClass(){} 


/** 
* @file main.js 
*/ 
var SomeClass = require('./SomeClass'); 

/** 
* @param {SomeClass} someParam description 
*/ 
function someFunc(someParam){} 

现在JSDoc3正确生成两个文件的文件,但它不会链接someFunc的参数类型到SomeClass的页面。我试着用替换@param {SomeClass}

  • @param {SomeClass.SomeClass}
  • @param {SomeClass/SomeClass}
  • @param {@link SomeClass}
  • @param {@link SomeClass.SomeClass}
  • @param {@link SomeClass/SomeClass}

但所有这些工作过:在所有情况下的文件只显示文本里面卷曲br ackets(即使我使用@link)。

我如何让JSDoc3正确地生成链接到外部模块?

+0

如果您使用{{@link SomeCLass}},它会尝试解析链接,但我还不确定正确的语法。 – Matt

回答

4

引用模块时使用module:前缀。如果模块的返回值是类本身,则使用module:SomeClass。如果它是模块的属性,请使用module:SomeClass.SomeClass。如果jsdoc可以找到对现有类文档的引用,则不应该需要@link标记。

+0

不是关于主题,而是相关的 - 如何使用@link标记 - 链接一个类'{@link Class |类名}'。链接一个模块命名空间|命名空间名称}'。链接一个模块(需要前缀)'{@link module:Module |模块名称}'。 –