或他们是否只是在源头?我真的很想得到一些东西,它会阻止js-doc-toolkit在每次分析jQuery时吓坏我。这也意味着我无法使用jQuery作为依赖项正确记录任何代码,而不至少放置一些样板js-doc块,这些块无法正确记录jQuery的结构。我不知道有一个共同的解决方案吗?我试过谷歌搜索,顺便说一句。
答案 0 :(得分:30)
我会在黑暗中拍摄,因为我无法代表jQuery团队为什么我不会使用JSDoc。 JSDoc,至少在我最后一次检查时,没有任何干净的方法来支持方法重载(或参数转换......无论你想在这里提供什么名称),jQuery都会使用它。让我们用.animate()
:
.animate({ height: 5 })
.animate({ height: 5 }, 100)
.animate({ height: 5 }, 100, "linear")
.animate({ height: 5 }, 100, "linear", func)
.animate({ height: 5 }, 100, func)
.animate({ height: 5 }, func)
.animate({ height: 5 }, { duration: 100, queue: false })
.animate({ height: 5 }, { duration: 100, easing: "linear" })
.animate({ height: 5 }, { duration: 100, easing: "linear", complete: func })
所有这些都是有效的,因为parameter types are checked and shifted as needed支持尽可能的任何重载场景......这只是混淆了JSDoc的地狱,没有干净的方法将这些可选参数添加到文档中。如果这已经改变了,请纠正我,但最后我看了(可能是团队最后一次看了)这仍然是这种情况。
另一个潜在的考虑因素是如何在jQuery运行时生成一些方法,例如(许多方法中的一个),几乎所有event handler shortcuts都是generated in a loop类似于其他方法的行为...你会如何记录这些? JSDoc生成在这里确实不能很好地工作。
答案 1 :(得分:7)
不知道为什么他们不添加JSDoc评论,但Google Closure的人似乎保留了他们需要的高级优化的闭包编译器所需的“外部”版本
http://code.google.com/p/closure-compiler/source/browse/trunk/contrib/externs/jquery-1.6.js?r=1152
答案 2 :(得分:4)
虽然我无法添加其他人对原始问题没有的任何其他内容,但我可以提供一个链接,可以自动记录jQuery。
它通过在运行时环境中执行它,然后解析生成的树来完成此操作。与JSDoc一样,它使用修改后的Rhino。它还处于起步阶段,但我希望这对某些人来说很方便。 :)