如何在JSDoc中记录使用arguments对象的函数参数顺序?
正确记录多签名函数的JSDoc方案
针对你的DoLog函数,JSDoc官方推荐使用@overload标签来明确记录多种合法的调用签名,替代已过时的@also标签。以下是适配三种调用方式的完整注释写法:
/** * 输出带级别标识的日志,支持三种调用形式 * @overload * @param {string} content - 日志内容(仅传此参数时,级别默认info,日志方法默认log) * @returns {void} * @overload * @param {string} [level='info'] - 日志级别 * @param {string} content - 日志内容 * @returns {void} * @overload * @param {string} [level='info'] - 日志级别 * @param {string} content - 日志内容 * @param {string} [logger='log'] - 控制台日志方法名(对应console[logger],如'warn'、'error') * @returns {void} */ function DoLog() { let level='info', content, logger='log'; switch (arguments.length) { case 1: content = arguments[0]; break; case 2: level = arguments[0]; content = arguments[1]; break; case 3: level = arguments[0]; content = arguments[1]; logger = arguments[2]; } console[logger](`[${level}] ${content}`); }
写法说明
- 每个
@overload块对应一种合法的调用方式,IDE会识别这些签名并在代码提示中展示正确的参数组合 - 每个
@overload下的@param严格对应该调用方式的参数顺序和必填性:- 第一种重载明确只有
content一个必填参数 - 第二种重载是
level(可选,默认info)+content(必填) - 第三种重载在前两者基础上增加可选的
logger参数(默认log)
- 第一种重载明确只有
- 主注释的第一行是函数的整体描述,让使用者快速了解功能
这样写既符合JSDoc官方规范,又能准确反映函数的实际调用规则,避免IDE出现错误的参数提示。
内容的提问来源于stack exchange,提问作者PY-DNG
相关产品推荐
相关产品推荐

