Czy istnieje określony sposób zadeklarowania metody lub funkcji zwracającej void w JsDoc? Obecnie uważam, że void
jest to domyślna wartość zwracana, a inne wartości zwracane muszą być szczegółowo określone:
/**
* @return {Integer} The identifier for ...
*/
javascript
ide
jsdoc
Wieża
źródło
źródło
@returns {void}
Ahhh, ktoś już o tym wspomniał: stackoverflow.com/a/45450508/470749Odpowiedzi:
Nie sądzę, że musisz wybierać z zestawu typów w JsDoc ... możesz użyć dowolnej nazwy typu (nawiasy klamrowe wskazują, że jest to typ), więc możesz po prostu zrobić:
@return {Void}
Chociaż jest to prawdopodobnie bardziej poprawne w przypadku JavaScript:
@return {undefined}
źródło
@returns {void}
?null
niekoniecznie jest tym samym, coundefined
@return {Void}
rzuca ostrzeżenia inspekcji kodu w IntelliJ IDE@return {undefined}
i@return {void}
nie.null
nigdy nie jest tym samym, coundefined
. Kiedy coś jest zerowe, nadal jest zdefiniowane, ale bez wartości. Undefined jest, no, nieokreślone :-)void
operatora toundefined
. Nazwa typu wartościundefined
toUndefined
, mimo że jejtypeof undefined
wynikiem jest"undefined"
. NazwaVoid
nie jest zdefiniowana w specyfikacjach Ecmascript.Kompilator zamknięcia
Zgodnie z dokumentacją Google Closure Compiler, jeśli nic nie jest zwracane, należy pominąć adnotację @return.
Źródło: https://developers.google.com/closure/compiler/docs/js-for-compiler#tags
jsdoc-toolkit
Jednak w dalszej dokumentacji stwierdza się również, że returnType i returnDescription są parametrami opcjonalnymi.
Źródło: https://code.google.com/p/jsdoc-toolkit/wiki/TagReturns
Podsumowanie
Możesz pominąć adnotację zwrotną lub dołączyć ją bez żadnych parametrów.
źródło
undefined
ponieważ jest to już niejawne w JavaScript i może powodować zamieszanie u każdego, kto czyta Twoje dokumenty.undefined
zmuszasz się do określenia swojego zamiaru, dobrze jest to również przy czytaniu go później. Dla wyjaśnienia, nie mówię, że powinno się zawierać bezużyteczne oświadczenie JS, mówię, że powinno się zawsze zawierać@returns
instrukcję JSDoc (jestem przeciwny bezużytecznemu kodowi, ale nie przeciwko „bezużytecznym” komentarzom).@returns {Array|undefined} - returns array if operation successful, otherwise returns undefined
Patrząc na dokumenty ESlint, których używają
@returns {void}
Źródło: http://eslint.org/docs/rules/valid-jsdoc
Ponieważ muszę zapewnić
@returns
dla każdej funkcji, aby przejść testy w celu wypchnięcia kodu dla niektórych projektów, jest to wymagane w moim przypadku.źródło
Jeśli chcesz głośno powiedzieć, że nic nie jest zwracane, możesz to powiedzieć w swobodnym opisie . Jest to przydatne do wyjaśnienia sytuacji, w których użytkownik może spodziewać się zwrotu czegoś. Oczywiście prawidłowe nazwanie funkcji i parametrów powinno same w sobie uwidocznić oczekiwany typ zwracanego wyniku, ale nie zawsze jest to możliwe.
/** * This is a funny function. Returns nothing. * @param {string} a joke. */ var funny = function (joke) { console.log(joke); };
źródło