Javascript “function(*=)”在JSDoc样式的代码注释中意味着什么?

Javascript “function(*=)”在JSDoc样式的代码注释中意味着什么?,javascript,webstorm,jsdoc,Javascript,Webstorm,Jsdoc,我正在用JSDoc风格写一些代码注释,想知道WebStorm生成的@returns{function(*=):*}中的含义 我试图搜索JSDoc wiki和usejsdoc.org,但没有结果 下面是我的代码: /** * Get record data listener generator. * @param {Function} createProps * @returns {function(*=): *} // ** generated by webstorm **

我正在用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);
}
正如您所看到的,我们只使用了第一个参数
callback
,而不使用
callback2
。Webstorm为此生成适当的jsdoc

上面示例的完整jsdoc(英文):
返回一个带两个参数的arrow函数,一个**not**可选的第一个参数可以是任何类型,另一个可选的第二个参数可以是任何类型。该函数返回void

文件参考:

可选参数

名为foo的可选参数

@参数{number}[foo]

//或:

@参数{number=}foo

默认值为1的可选参数foo

@参数{number}[foo=1]


编辑:文档表明
=
表示
可选参数
,但webstorm生成的参数含义相反。要么是错误的记录,要么是WebStorm做的不对。我已经在WebStorm 2018.1中进行了测试
Build#WS-181.4203.535,于2018年3月22日建成

您有找到该文档的链接吗?谢谢。@Armel我添加了另一个编辑,因为我对webstorm的观察与jsdoc文档中的描述不同。