如何在JSDoc typedef中标记函数的可选参数?(附示例)
给JSDoc中Queue的listQueueNames函数标记可选参数的正确方式
嘿,针对你这个需求,我给你两种常用且规范的写法,轻松搞定Queue类型里listQueueNames函数的可选参数标记:
方式一:直接在函数签名中标记(简洁版)
这种方式适合简单场景,直接用方括号[]包裹参数类型,就表示该参数是可选的:
/*** * @typedef {object} Queue * @property {function([string]):string[]} listQueueNames Gets an optionally filtered list of QueueNames. */
这里的[string]就明确告诉编译器/编辑器:这个函数的参数是可选的字符串类型。
方式二:单独定义函数类型(清晰版)
如果需要更详细的参数说明,建议先单独定义函数的typedef,再在Queue类型中引用,可读性更强:
/** * @typedef {function} ListQueueNamesFn * @param {string} [filter] Optional filter string to narrow down the list of queue names * @returns {string[]} Array of queue names matching the filter (or all names if no filter is provided) */ /** * @typedef {object} Queue * @property {ListQueueNamesFn} listQueueNames Gets an optionally filtered list of QueueNames. */
这种方式还能给可选参数添加详细描述,甚至可以指定默认值,比如把@param写成@param {string} [filter=""],表示这个可选参数默认是空字符串。
内容的提问来源于stack exchange,提问作者Schemiii
相关产品推荐
相关产品推荐

