首页 > 解决方案 > `function(*=)` 在 JSDoc 风格的代码注释中意味着什么?

问题描述

我正在使用 JSDoc 样式编写一些代码注释,并且想知道由 WebStorm 生成的 中的含义*=@returns {function(*=): *}

我试图搜索 JSDoc wiki 和 usejsdoc.org 但没有结果。

下面是我的代码:

/**
 * Get record data listener generator.
 * @param {Function} createProps
 * @returns {function(*=): *}        // ** generated by webstorm **
 */
export function getRecordCustomDataListener(createProps) {
  return (callback) => onRecordCustomData({ createRecordData: createProps })(callback); // `onRecordCustomData` has not default argument
}

我想知道*=.@returns {function(*=): *}

标签: javascriptwebstormjsdoc

解决方案


见底部编辑!!

在 WebStorm 中使用一小段代码对其进行测试似乎表明*=参数不是可选的,并且可以是任何类型,其中*表明参数是任何类型且是可选的。请参阅以下示例,其中包含从 WebStorm 生成的 jsdoc:

/**
 *
 * @param createProps
 * @returns {function(*=, *): void}
 */
export function a(createProps) {
    return (callback, callback2) => console.log(callback);
}

正如你所看到的,我们只使用了第一个参数callback并且callback2没有使用。Webstorm 会为此生成正确的 jsdoc。

上面示例的完整 jsdoc 英文单词:Return an arrow function that takes two parameters, a **not** optional first parameter that can be of any type, and an optional second parameter that can be of any type. That function returns void

文档参考:

http://usejsdoc.org/tags-type.html

可选参数

一个名为 foo 的可选参数。

@param {数字} [foo]

// 或者:

@param {number=} 富

可选参数 foo,默认值为 1。

@param {数字} [foo=1]


编辑:文档表明这=意味着optional parameter但 webstorm 以相反的含义生成它。要么它的文档记录错误,要么 WebStorm 做错了。我已经在 2018 年 3 月 22 日构建的 WebStorm 2018.1 Build #WS-181.4203.535 中对其进行了测试


推荐阅读