Javascript “function(*=)”在JSDoc样式的代码注释中意味着什么?
我正在用JSDoc风格写一些代码注释,想知道WebStorm生成的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 **
@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文档中的描述不同。