到目前为止,有四种不同的方法来记录对象作为参数/类型。每种方法都有自己的用途。但是只有其中三种可以用于记录返回值。
对于具有已知属性集的对象(变体A)
/**
* @param {{a: number, b: string, c}} myObj description
*/
这种语法适用于仅作为此函数参数使用且不需要每个属性的进一步描述的对象。它
也可用于 @returns
。
对于已知属性集的对象(变体B),
带有属性的参数语法非常有用。
/**
* @param {Object} myObj description
* @param {number} myObj.a description
* @param {string} myObj.b description
* @param {} myObj.c description
*/
此语法适用于仅用作此函数参数并需要进一步描述每个属性的对象。但此语法不能用于
@returns
。
对于将在源代码中多次使用的对象,
@typedef非常方便。您可以在源代码的一个点定义类型,并将其用作
@param
或
@returns
或其他可使用类型的JSDoc标签的类型。
然后您可以在@param
标签中使用这个:
/**
* @param {Person} p - Description of p
*/
或者在@returns
中:
/**
* @returns {Person} Description
*/
对于值都是相同类型的对象
第一种类型(字符串)记录了键的类型,在JavaScript中始终为字符串或至少将强制转换为字符串。第二种类型(数字)是值的类型;这可以是任何类型。
这种语法也可以用于
@returns
。
资源
有关记录类型的有用信息可以在此处找到:
https://jsdoc.app/tags-type.html
提示:
要记录一个可选值,您可以使用[]
:
或者:
/**
* @param {number|undefined} opt_number this number is optional
*/