Digamos que tiene algo como lo siguiente:
var someFunc = function() {
// do something here with arguments
}
¿Cómo documentaría correctamente que esta función puede tomar cualquier número de argumentos en JSDoc? Esta es mi mejor suposición, pero no estoy seguro de que sea correcta.
/**
* @param {Mixed} [...] Unlimited amount of optional parameters
*/
var someFunc = function() {
// do something here with arguments
}
Relacionado con: php - Cómo documentar un número variable de parámetros
fuente
var_args
o lo que quieras llamar como el único parámetro. Triste truco./** @param {...Function} tasks The tasks. */ function waterfallTasks(...tasks) {
Los parámetros de descanso siempre tienen una presencia funcional en los parámetros.Cómo hacer esto ahora se describe en la documentación de JSDoc, y usa puntos suspensivos como lo hacen los documentos de Closure.
@param {...<type>} <argName> <Argument description>
Debe proporcionar un tipo para ir después de los puntos suspensivos, pero puede usar a
*
para describir la aceptación de cualquier cosa o usar|
para separar varios tipos aceptables. En la documentación generada, JSDoc describirá este argumento como repetible , de la misma manera que describe los argumentos opcionales como opcionales .En mis pruebas no hubo necesidad de tener un argumento en la definición de la función javascript real, por lo que su código real puede tener paréntesis vacíos, es decir
function whatever() { ... }
.Tipo único:
Cualquier tipo (en el ejemplo siguiente, los corchetes significan
items
que se etiquetará como opcional y repetible):Varios tipos necesitan paréntesis alrededor de la lista de tipos, con puntos suspensivos antes del par de apertura:
@param {...(Person|string)} attendees - Meeting attendees, listed as either String names or {@link Person} objects
fuente
@param {{...(key: value)}} [config] - specific configs for this transfer
pero me preguntaba si esto es correcto.Desde el grupo de usuarios de JSDoc :
Aunque está un poco anticuado (2007), pero no conozco nada más actual.
Si necesita documentar el tipo de parámetro como 'mixto', use
{*}
, como en@param {*} [arguments]
.fuente
@param [arguments]
(o@param {*} [arguments]
para el caso) así como la sintaxis establecida por el compilador de cierre de Google (mencionado en otra respuesta).@param [...]
no es apoyado.Estuve luchando con esto durante bastante tiempo. A continuación, le indicamos cómo hacerlo con Google Closure Compiler:
/** * @param {...*} var_args */ function my_function(var_args) { // code that accesses the magic 'arguments' variable... }
La clave es darle a tu función un
var_args
parámetro (o como lo llames en tu@param
declaración) aunque la función no use ese parámetro.fuente