对于以下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
却没有显示该对象的属性
[可选参数记录在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返回的默认属性创建一个非常简单的类。