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

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

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

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

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

и я могу объединить их, как показано ниже, что работает нормально.

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

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

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 выражения типа. Вы ставите знак равенства после типа так: function test(/**String=*/arg) {}