nie można udokumentować zagnieżdżone funkcje bezpośrednio. Ale można zrobić coś takiego:
/**
* @module foobar
*/
/**
* @function
* @author Baa
* @name hello
* @description Output a greeting
* @param {String} name - The name of the person to say hello
*/
(function hello(name) {
/**
* @function
* @author Baz
* @inner
* @private
* @memberof module:foobar
* @description Check if the argument is a string (see: {@link module:foobar~hello})
* @param {String} string - The string
* @returns {String} Returns true if string is valid, false otherwise
*/
var isString = function checkString(string) { return typeof string === 'string'; };
if (isString(name))
console.log('Hello ' + name + '!');
}('Mr. Bubbles'));
Tutaj mam ustawienia checkString
jak prywatny i wewnętrzna być opisowe (od Funkcje zagnieżdżone nie można opisać), a potem przechodzą w -p
do dokumentować prywatne funkcje. Na koniec dodaję link do funkcji nadrzędnej w celach informacyjnych.
Myślę, że jsdoc
jest niepotrzebnie wybredny i musi zostać zastąpiony czymś lepszym. Jest to port javadoc
, więc ma wiele rzeczy istotnych dla Javy, ale nie JS i na odwrót. Istnieją bardzo popularne idiagi JS, takie jak zamknięcia lub zagnieżdżonych funkcji, które są trudne lub niemożliwe do udokumentowania.
Zawsze sprawdzam moje tablice i debugowanie przy użyciu flagi --explain
.
Dzieje się tak, ponieważ JSDoc jest w pełni java-isms i nie pasuje do JavaScript. Po prostu pisz rozsądne komentarze zamiast: – Raynos
Dziękuję, rjmunro. Zgadzam się. Nie sądziłem, że to było w ogóle zlokalizowane. Od tego czasu przełączyłem się na dokumentację Docco. jashkenas.github.com/docco/ –