Javascript jsdoc-param对象内的默认属性值
对于以下jsdoc@param对象,如何将默认值分配给Javascript jsdoc-param对象内的默认属性值,javascript,jsdoc,Javascript,Jsdoc,对于以下jsdoc@param对象,如何将默认值分配给name /** @param inbound {{ email: string, name: string, req: Req }} */ 我试过了 /** @param inbound {{ email: string, name: [string=""], req: Req }} */ 但这只是把它变成
name
/**
@param inbound {{
email: string,
name: string,
req: Req
}}
*/
我试过了
/**
@param inbound {{
email: string,
name: [string=""],
req: Req
}}
*/
但这只是把它变成一个数组[string,“]
我也更喜欢这种
@param
样式,而不是@typedef
,因为vscode使用@param
向我显示对象的属性,而对于@typedef
,它不显示可选参数记录在wiki上的文档中
简而言之,应该使用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';
}
但是,您的问题特别涉及文档中的默认属性。据我所知,“深度默认”在vanilla JS中并不常见,在方法签名中也不常见,因此不太可能找到一种纯粹的JSDocs方法来实现这一点
只要写一个好的描述并用JS实现即可。您可以创建一个非常简单的类,该类的默认属性由getter/setter返回