Angenommen, Sie haben etwa Folgendes:
var someFunc = function() {
// do something here with arguments
}
Wie würden Sie korrekt dokumentieren, dass diese Funktion eine beliebige Anzahl von Argumenten in JSDoc annehmen kann? Dies ist meine beste Vermutung, aber ich bin nicht sicher, ob es richtig ist.
/**
* @param {Mixed} [...] Unlimited amount of optional parameters
*/
var someFunc = function() {
// do something here with arguments
}
Verwandt mit: php - Wie man eine variable Anzahl von Parametern dokumentiert
quelle
var_args
oder was auch immer Sie als einzigen Parameter aufrufen möchten. Trauriger Hack./** @param {...Function} tasks The tasks. */ function waterfallTasks(...tasks) {
Ruheparameter haben immer eine funktionale Präsenz in den Parametern.Wie das geht, wird jetzt in der JSDoc-Dokumentation beschrieben und es wird ein Auslassungszeichen verwendet, wie es in den Closure-Dokumenten der Fall ist.
@param {...<type>} <argName> <Argument description>
Sie müssen einen Typ angeben, um die Auslassungspunkte zu verfolgen. Sie können jedoch einen verwenden
*
, um das Akzeptieren von Daten zu beschreiben, oder den|
, um mehrere akzeptable Typen zu trennen. In der generierten Dokumentation beschreibt JSDoc dieses Argument als wiederholbar , genauso wie es optionale Argumente als optional beschreibt .Bei meinen Tests war es nicht erforderlich, ein Argument in der eigentlichen Definition der Javascript-Funktion zu haben, sodass Ihr tatsächlicher Code nur leere Klammern enthalten kann, d
function whatever() { ... }
. H.Einzeltyp:
Jeder Typ (im folgenden Beispiel bedeutet der Mittelwert
items
in eckigen Klammern, dass er sowohl als optional als auch als wiederholbar gekennzeichnet ist):Mehrere Typen benötigen Klammern um die Typliste mit den Auslassungspunkten vor dem Eröffnungs-Paren:
@param {...(Person|string)} attendees - Meeting attendees, listed as either String names or {@link Person} objects
quelle
@param {{...(key: value)}} [config] - specific configs for this transfer
aber habe mich gefragt, ob das richtig ist?Aus der JSDoc-Benutzergruppe :
Es ist zwar etwas veraltet (2007), aber mir ist nichts Aktuelleres bekannt.
Wenn Sie den Parametertyp als 'gemischt' dokumentieren müssen, verwenden Sie
{*}
wie in@param {*} [arguments]
.quelle
@param [arguments]
(oder auch@param {*} [arguments]
) sowie die vom Google Closure-Compiler festgelegte Syntax (in einer anderen Antwort erwähnt).@param [...]
wird nicht unterstützt.Ich habe mich eine ganze Weile damit beschäftigt. So geht's mit Google Closure Compiler:
/** * @param {...*} var_args */ function my_function(var_args) { // code that accesses the magic 'arguments' variable... }
Der Schlüssel besteht darin, Ihrer Funktion einen
var_args
Parameter zu geben (oder wie auch immer Sie ihn in Ihrer@param
Anweisung nennen), obwohl die Funktion diesen Parameter nicht tatsächlich verwendet.quelle