Estoy usando JSDoc para la documentación de parámetros.
Está claro cómo documentar los tipos de parámetros para many_prompts , pero ¿cuál es la forma correcta de documentar la función que devuelve?
/** * @param {Number} - number of times to prompt * @return {Function(prompt{Number})} - the returned function */ function many_prompts(count) { return function(prompt) { for(var i=0; i < count; i++) alert(prompt); } } //Example of use: var y =many_prompts(3); y('Hello World');Puede documentar la función interna y luego hacer referencia a ella así
/** * @param {Number} - number of times to prompt * @return {many_prompts~inner} - the returned function */ function many_prompts(count){ /** * My inner function * * @param {object} prompt Some parameter */ var inner = function(prompt){ for(var i=0;i<count;i++) alert(prompt) }; return inner; }Esto parece estar funcionando para mí.
/** * @param {Number} count - number of times to prompt * @return {function(): void} - the returned function */ manyPrompts(count) { /** * My inner function * * @param {object} prompt Some parameter */ const inner = function(prompt) { for (let i=0; i < count; i++) { alert(prompt); }; }; return inner; }La forma que prefiero:
/** * @param {number} count - number of times to prompt * @returns { (promt:string) => void } - the returned function */ manyPrompts(count) { /** * My inner function * * @param {object} prompt Some parameter */ const inner = function(prompt) { for (let i=0; i < count; i++) { alert(prompt); }; }; return inner; }