`function(*=)` 在 JSDoc 风格的代码注释中意味着什么?

What does `function(*=)` imply in a JSDoc-style code comment?

我正在使用 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(*=): *} 中意味着什么。

见底部编辑!!

在 WebStorm 中用一个小片段测试它似乎表明 *= 意味着参数是 不是 可选的并且可以是 * 的任何类型表示该参数是任意类型和可选的。请参阅以下示例,其中包含从 WebStorm 生成的 jsdoc:

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

如您所见,我们只使用了第一个参数 callbackcallback2 未使用。 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

可选参数

An optional parameter named foo.

@param {number} [foo]

// or:

@param {number=} foo

An optional parameter foo with default value 1.

@param {number} [foo=1]


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