Как вернуть пустоту в JsDoc? - программирование
Подтвердить что ты не робот

Как вернуть пустоту в JsDoc?

Есть ли способ объявить метод или функцию для возврата void в JsDoc? В настоящее время я полагаю, что void - это возвращаемое по умолчанию значение, и должны быть указаны другие возвращаемые значения:

/**
 * @return {Integer} The identifier for ...
 */
4b9b3361

Ответ 1

Я не считаю, что вам нужно выбирать из набора типов в JsDoc... вы можете использовать любое имя типа, которое вы хотите (фигурные скобки указывают на тип), поэтому вы можете просто сделать:

@return {Void}

Хотя, вероятно, это более корректно для JavaScript:

@return {undefined}

Ответ 2

Компилятор Closure

В соответствии с документацией компилятора Google Closure, если ничего не возвращается, аннотация @return следует опустить.

Если нет возвращаемого значения, не используйте тег @return.

Источник: https://developers.google.com/closure/compiler/docs/js-for-compiler#tags

JSDoc-инструментарий

Однако в дополнительной документации также указано, что returnType и returnDescription являются необязательными параметрами.

returnType - Необязательно: тип возвращаемого значения.

returnDescription - Необязательно: любое дополнительное описание.

Источник: https://code.google.com/p/jsdoc-toolkit/wiki/TagReturns

Резюме

Вы можете либо оставить аннотацию возврата, либо включить ее без каких-либо параметров.

Ответ 3

Глядя на документы ESlint, они используют @returns {void}

Источник: http://eslint.org/docs/rules/valid-jsdoc

Так как мне нужно предоставить @returns для каждой функции, чтобы проходить тесты, чтобы нажимать код для определенных проектов, это требуется в моем случае.

Ответ 4

Если вам нужно сказать вслух, что ничего не возвращается, вы можете сказать, что в описании свободной формы. Это полезно для выяснения ситуаций, когда пользователь может ожидать, что что-то будет возвращено. Разумеется, правильное присвоение имени функции и параметров должно сделать очевидным тип ожидаемого возврата, но это может быть не всегда возможно.

/**
 * This is a funny function. Returns nothing.
 * @param {string} a joke.
 */
var funny = function (joke) {
  console.log(joke);
};