有JSDoc标准吗?

时间:2012-08-07 18:14:49

标签: javascript standards jsdoc

我知道JSDoc有各种各样的风格。并且似乎JSDoc解析器的每个实现都识别它自己的标记集。例如,请考虑http://usejsdoc.org/http://www.techrepublic.com/blog/programming-and-development/create-useful-relevant-javascript-documentation-with-jsdoc/451之间标记的差异。

此时,我感到很困惑。是否有规范的JSDoc实现或广泛认可的核心标记集?是否有最好的 JSDoc实现?


修改

正如下面评论中所提到的,这个问题的原因是我需要解析JSDoc注释以便与我们正在创建的工具一起使用。请参阅此问题“:Are there any open source JSDoc parser written in Javascript?

我担心我将不得不推出自己的解析器,如果我这样做,我需要知道需要支持哪些标签。

但是,在更深层次上,对我而言,没有一致的规范(或参考实现)。这使得JSDoc对我来说有点特别。

2 个答案:

答案 0 :(得分:5)

我认为最完整的功能是google closure compiler

使用的功能

使用谷歌闭包编译器的一个很酷的事情是,它将对已标记有类型信息的函数进行类型检查。

我感觉到你的痛苦,我整天都在处理这件事。这是我必须编写代码/文档的非标准功能的示例。 Ext-JS使用@cfg来记录传递给窗口小部件的初始化对象的属性。我使用的IDE IntelliJ使用JSDoc提供更好的代码建议,甚至可以理解Ext的方言。对于大多数事情,它运作良好。但是,很多时候我不得不以某种方式复制文档以使我的IDE和doc工具(Ext的jsdoc版本)理解它,而不是非常干。这是一个例子:

...
/** 
 * @cfg {string} title // Ext-JS grabs the type from this line
 * @type string // My IDE grabs the type from this line
 */
 title: null // My IDE requires this line to recognize the cfg
             // as a property of the object even though all cfgs
             // are available in the object
...

答案 1 :(得分:4)

我也分享你的痛苦。令人讨厌的是,这不是标准化的。虽然我同意Juan Mendes先生的意见,Closure Compiler的功能是最完整的(也可能是最棒的!),

我一直认为这里的标签列表http://code.google.com/p/jsdoc-toolkit/w/list是我们对真实规格最接近的标签。它可能已经过时了,但它仍然可能更接近许多解析器和IDE实现的内容,而且比Closure Compiler更接近。

另见维基百科,关于应该在哪些标签上达成共识。 http://en.wikipedia.org/wiki/JSDoc

虽然如果你的产品支持JSDoc的Closure Compiler风格,那将使它更接近成为事实标准。 :d