jsdoc-参数对象内的默认属性值

问题描述 投票:0回答:1

对于以下jsdoc @param对象,如何为name分配默认值?

/** 
    @param inbound {{
        email: string,
        name: string,
        req: Req
    }}
*/

我已经尝试过

/** 
    @param inbound {{
        email: string,
        name: [string=""],
        req: Req
    }}
*/

但是只是将其转换为数组[string, ""]

[相对于@param,我也更喜欢这种@typedef样式,因为vscode使用@param向我显示了对象的属性,而对于@typedef却没有显示该对象的属性

javascript jsdoc
1个回答
1
投票

[可选参数记录在Types in the Closure Type System Wiki上的文档Closure Compiler中。

简而言之,默认值应使用JS提供。

/**
 * Some class, initialized with an optional value.
 * @param {!Object=} opt_value Some value (optional).
 * @constructor
 */
function MyClass(opt_value) {
  /**
   * Some value.
   * @private {!Object|undefined}
   */
  this.myValue_ = opt_value || 'foo';
}

但是,您的问题专门涉及文档中的默认属性。就我所知,“深度默认”不是普通JS中的东西,也不是方法签名中的东西,因此您不太可能会找到纯粹的JSDocs方法来完成此任务。

只需编写一个很好的描述并用JS实现。您可以使用getter / setter返回的默认属性创建一个非常简单的类。

© www.soinside.com 2019 - 2024. All rights reserved.