Gibt es eine bestimmte Möglichkeit, eine Methode oder eine Funktion zu deklarieren, um in JsDoc void zurückzugeben? Derzeit bin ich der Überzeugung, dass dies void
der Standardrückgabewert ist, und andere Rückgabewerte müssen speziell angegeben werden:
/**
* @return {Integer} The identifier for ...
*/
javascript
ide
jsdoc
Turm
quelle
quelle
@returns {void}
Ahhh, jemand hat es bereits erwähnt: stackoverflow.com/a/45450508/470749Antworten:
Ich glaube nicht, dass Sie in JsDoc aus einer Reihe von Typen auswählen müssen ... Sie können einen beliebigen Typnamen verwenden (die geschweiften Klammern zeigen an, dass es sich um einen Typ handelt), also können Sie einfach Folgendes tun:
@return {Void}
Obwohl dies für JavaScript wahrscheinlich korrekter ist:
@return {undefined}
quelle
@returns {void}
?null
ist nicht unbedingt das gleiche wieundefined
@return {Void}
löst eine Code-Inspektionswarnung in IntelliJ IDE aus@return {undefined}
und@return {void}
nicht.null
ist nie das gleiche wieundefined
. Wenn etwas null ist, ist es immer noch definiert, aber ohne Wert. Undefiniert ist, na ja, nicht definiert :-)void
Operator zurückgegebene Wert istundefined
. Der Name des Werttypsundefined
lautetUndefined
, obwohl ertypeof undefined
ausgewertet wird"undefined"
. Der NameVoid
ist in den Ecmascript-Spezifikationen nicht definiert.Closure Compiler
Laut der Dokumentation des Google Closure Compiler sollte die Annotation @return weggelassen werden, wenn nichts zurückgegeben wird.
Quelle: https://developers.google.com/closure/compiler/docs/js-for-compiler#tags
jsdoc-toolkit
In der weiteren Dokumentation wird jedoch auch angegeben, dass returnType und returnDescription optionale Parameter sind.
Quelle: https://code.google.com/p/jsdoc-toolkit/wiki/TagReturns
Zusammenfassung
Sie können die Rückgabeanmerkung entweder weglassen oder ohne Parameter einfügen.
quelle
undefined
da dies bereits in Javascript impliziert ist und bei jedem, der Ihre Dokumente liest, Verwirrung stiften kann.undefined
dazu zwingen, Ihre Absicht darzulegen, ist dies auch gut, wenn Sie ihn später lesen. Zur Verdeutlichung sage ich nicht, dass man eine nutzlose JS-Anweisung einschließen sollte, ich sage, dass man immer eine JSDoc-@returns
Anweisung einschließen sollte (ich bin gegen nutzlosen Code, aber nicht gegen "nutzlose" Kommentare).@returns {Array|undefined} - returns array if operation successful, otherwise returns undefined
Betrachten Sie die von ihnen verwendeten ESlint-Dokumente
@returns {void}
Quelle: http://eslint.org/docs/rules/valid-jsdoc
Da ich
@returns
für jede Funktion eine angeben muss, um Tests zu bestehen, um Code für bestimmte Projekte zu pushen, ist dies in meinem Fall erforderlich.quelle
Wenn Sie laut sagen müssen, dass nichts zurückgegeben wird, können Sie dies in der Freiformbeschreibung sagen . Dies ist nützlich, um Situationen zu klären, in denen ein Benutzer möglicherweise erwartet, dass etwas zurückgegeben wird. Natürlich sollte die richtige Benennung der Funktion und der Parameter allein den erwarteten Rückgabetyp deutlich machen, aber dies ist möglicherweise nicht immer möglich.
/** * This is a funny function. Returns nothing. * @param {string} a joke. */ var funny = function (joke) { console.log(joke); };
quelle