Как указать, что param является необязательным с помощью встроенного JSDoc?


согласно JSDoc wiki для @param вы можете указать, что @param является необязательным с помощью

/**
    @param {String} [name]
*/
function getPerson(name) {
}

и вы можете указать param inline используя

function getPerson(/**String*/ name) {
}

и я могу объединить их следующим образом, который работает нормально.

/**
    @param [name]
*/
function getPerson(/**String*/name) {
}

но я хотел бы знать, есть ли способ сделать все это встроенным, если это возможно.

3 69

3 ответа:

С официальная документация:

необязательный параметр

необязательный параметр с именем foo.

@param {number} [foo]
// or:
@param {number=} foo

необязательный параметр Foo со значением по умолчанию 1.

@param {number} [foo=1]

после некоторых раскопок я обнаружил, что они тоже в порядке

/**
 * @param {MyClass|undefined}
 * @param {MyClass=}
 * @param {String} [accessLevel="author"] The user accessLevel is optional.
 * @param {String} [accessLevel] The user accessLevel is optional.
 */

чуть более визуально привлекательным, чем function test(/**String=*/arg) {}

Я нашел способ сделать это с помощью Google Closure Compiler выражения типа. Вы ставите знак равенства после типа вот так: function test(/**String=*/arg) {}