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

jsdoc - default property value inside param object

对于下面的jsdoc @param对象,如何给name赋默认值?

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

我试过了

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

但这只会把它变成一个数组 [string, ""]

@typedef 相比,我也更喜欢这种 @param 风格,因为 vscode 向我展示了使用 @param 的对象的属性,而它并没有展示它@typedef

文档中记录了可选参数闭包类型系统中的类型 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';
}

但是,您的问题具体指的是文档中的默认 属性。据我所知,"deep defaulting" 不是 vanilla JS 中的东西,无论如何也不是方法签名中的东西,所以你不太可能找到一种纯粹的 JSDocs 方法来完成这个。

只要写好描述,用JS实现即可。您可以创建一个非常简单的 class,此默认值 属性 由 getter/setter.

返回