Согласно вики JSDoc для @param вы можете указать, что @param является необязательным, используя
/**
@param {String} [name]
*/
function getPerson(name) {
}
и вы можете указать встроенный параметр, используя
function getPerson(/**String*/ name) {
}
И я могу объединить их следующим образом, и это нормально.
/**
@param [name]
*/
function getPerson(/**String*/name) {
}
Но я хотел бы знать, есть ли способ сделать все это, если это возможно.
javascript
google-closure-compiler
jsdoc
studgeek
источник
источник
После некоторого раскопок я обнаружил, что они тоже в порядке
Просто немного более привлекательно, чем
function test(/**String=*/arg) {}
источник
Я нашел способ сделать это с помощью выражений типов Google Closure Compiler . Вы ставите знак равенства после типа:
function test(/**String=*/arg) {}
источник
Если вы используете комментарии встроенного типа для аргументов функции и задаетесь вопросом, как пометить аргумент функции как необязательный в этой нотации, я обнаружил, что просто присвоение значений по умолчанию необязательным аргументам сработало. Если вы хотите, чтобы значение по умолчанию было,
undefined
вы также должны указать его явно, иначе аргумент не будет отмечен как необязательный (даже если ему предшествуют уже необязательные аргументы):Если вы наведете курсор на
demo
свою среду IDE, вы должны увидеть и то,optional1
и другое, иoptional2
теперь они будут отображаться как необязательные. В VSCode это обозначается значком?
после имени аргумента (нотация TypeScript). Если вы удалите= undefined
из,optional2
вы увидите толькоoptional1
опциональность, что, конечно, бессмысленно, поэтому значение по умолчанию здесь должно быть явным, как я упоминал в предыдущем абзаце.источник