我正在使用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(*=): *}
中的含义。
答案 0 :(得分:5)
查看底部的编辑内容!
在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 {number} [foo]
//或:
@param {number =} foo
可选参数foo,默认值为1。
@param {number} [foo = 1]
编辑:文档显示=
的意思是optional parameter
,但webstorm生成的意思相反。错误记录或WebStorm做错了。我已经在WebStorm 2018.1中对其进行了测试
Build#WS-181.4203.535,建于2018年3月22日