javascript - `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(*=): *}
解决方案
见底部编辑!!
在 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 中对其进行了测试
推荐阅读
- visual-studio-code - vs代码扩展:如何在活动栏中设置图标状态
- ios - ViewController 重新加载 tableview 数据
- erlang - 为什么要在同步调用中使用 erlang 的 gen_server:call?
- swift - “复制 swift 标准库”构建步骤不包括 SwiftOnoneSupport.dylib
- c# - EmguCV DLL 未找到异常 - 无法找到 cvextern?
- machine-learning - 选择“参数范围”选项时,“点数”是什么意思
- java - 抛出错误消息:索引超出范围异常
- python - SQLite3 Python - 在以后的会话中提交()
- angular - 离子侧边栏滞后
- unity3d - Unity 2018:2D 对象 - SpriteMesh