Или они есть и этого просто нет в исходниках? Мне бы очень хотелось получить что-то, что не даст js-doc-toolkit сходить с ума каждый раз, когда он анализирует jQuery. Это также означает, что я не могу должным образом задокументировать какой-либо код, использующий jQuery в качестве зависимости, по крайней мере, не поместив некоторые стандартные блоки js-doc, которые не могут должным образом документировать структуру jQuery. Есть ли какое-то общее решение, о котором я не знаю? Я пробовал гуглить, кстати.
Почему jQuery не использует JSDoc?
Ответы (3)
Я сделаю попытку в темноте, так как я не могу говорить от имени команды 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 })
Все они допустимы, поскольку типы параметров проверяются и сдвигаются по мере необходимости. для поддержки как можно большего количества сценариев перегрузки... это просто чертовски запутывает JSDoc, нет простого способа добавить эти необязательные параметры в документацию. Пожалуйста, поправьте меня, если это изменилось, но в последний раз, когда я смотрел (и, вероятно, в последний раз, когда команда смотрела), это все еще было так.
Еще одно потенциальное соображение заключается в том, как генерируются некоторые методы при запуске jQuery, например (один из многих), почти все ярлыки обработчиков событий генерируются в цикле аналогичное поведение для других методов... как бы вы это задокументировали? Генерация JSDoc просто не работает здесь.
-vsdos.js
, который использует ... некоторые ребята из Microsoft или сообщество генерируют: stackoverflow.com/questions/2323366/jquery-1-4-2-vsdoc Редактор зависит от этой документации для сказать вам, что такое параметры, если они все время неточны (и несколько методов генерируются на лету... как вы документируете их в исходном коде?), то они не очень полезны.
- person Nick Craver; 29.10.2010
-vsdoc.js
и просто подумал: почему Microsoft должна делать это не так, как большинство? Я не думал, что это из-за «проверки типов» параметров jQuery. Хороший пример на этом фронте. Примечание: @hlfcoding имеет 666
точки повторения.
- person Jim Schubert; 05.07.2011
{[int]} duration
. Это справится с перегрузкой, предполагая, что порядок непротиворечив. Однако он не справился бы с параметрами, помещенными в объект.
- person David Harkness; 25.06.2012
@variation
, который полезен для документирования различных способов вызова метода.
- person kzh; 22.07.2013
Не знаю, почему они не добавляют комментарий JSDoc, но ребята из Google Closure, кажется, сохраняют обновленную версию «внешних», которые им нужны для компилятора закрытия с расширенной оптимизацией.
http://code.google.com/p/closure-compiler/source/browse/trunk/contrib/externs/jquery-1.6.js?r=1152
Хотя я не могу добавить что-либо еще, чего не было у других относительно исходного вопроса, я могу предоставить ссылку на что-то, что МОЖЕТ автоматически документировать jQuery.
Он делает это, выполняя его в среде выполнения, а затем анализируя полученные деревья. Как и JSDoc, он использует модифицированный Rhino. Это в зачаточном состоянии, но я надеюсь, что это пригодится кому-то. :)
https://bitbucket.org/nexj/njsdoc