【问题标题】:What does `function(*=)` imply in a JSDoc-style code comment?`function(*=)` 在 JSDoc 风格的代码注释中意味着什么?
【发布时间】:2019-05-29 00:59:25
【问题描述】:

我正在编写一些使用 JSDoc 样式的代码 cmets,并且想知道 *= 在 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(*=): *} 中的含义。

【问题讨论】:

    标签: javascript webstorm jsdoc


    【解决方案1】:

    查看底部的编辑!!

    在WebStorm 中用小sn-p 对其进行测试似乎表明*= 表示参数是 可选的,并且可以是* 表示参数是任意类型的任何类型类型和可选。请参阅以下使用 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 中测试过了 构建 #WS-181.4203.535,构建于 2018 年 3 月 22 日

    【讨论】:

    • 您有找到此文件的文档的链接吗?谢谢。
    • @Armel 我添加了另一个编辑,因为我对 webstorm 的观察不是 jsdoc 文档所述。
    猜你喜欢
    • 2021-11-04
    • 1970-01-01
    • 1970-01-01
    • 2020-01-03
    • 2017-12-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多