JSDoc:返回对象结构

新手上路,请多包涵

我如何告诉 JSDoc 关于返回对象的结构。我找到了 @return {{field1: type, field2: type, ...}} description 语法并尝试了它:

 /**
 * Returns a coordinate from a given mouse or touch event
 * @param  {TouchEvent|MouseEvent|jQuery.Event} e
 *         A valid mouse or touch event or a jQuery event wrapping such an
 *         event.
 * @param  {string} [type="page"]
 *         A string representing the type of location that should be
 *         returned. Can be either "page", "client" or "screen".
 * @return {{x: Number, y: Number}}
 *         The location of the event
 */
var getEventLocation = function(e, type) {
    ...

    return {x: xLocation, y: yLocation};
}

虽然解析成功,但生成的文档仅说明:

 Returns:
    The location of an event
    Type: Object

我正在开发一个 API,需要人们了解他们将返回的对象。这在 JSDoc 中可能吗?我正在使用 JSDoc3.3.0-beta1。

原文由 BlackWolf 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 2.3k
2 个回答

使用 @typedef 单独定义结构:

 /**
 * @typedef {Object} Point
 * @property {number} x - The X Coordinate
 * @property {number} y - The Y Coordinate
 */

并将其用作返回类型:

 /**
 * Returns a coordinate from a given mouse or touch event
 * @param  {TouchEvent|MouseEvent|jQuery.Event} e
 *         A valid mouse or touch event or a jQuery event wrapping such an
 *         event.
 * @param  {string} [type="page"]
 *         A string representing the type of location that should be
 *         returned. Can be either "page", "client" or "screen".
 * @return {Point}
 *         The location of the event
 */
var getEventLocation = function(e, type) {
    ...

    return {x: xLocation, y: yLocation};
}

原文由 BGerrissen 发布,翻译遵循 CC BY-SA 4.0 许可协议

除了已发布的建议之外,您还可以使用以下格式:

 /**
 * Get the connection state.
 *
 * @returns {Object} connection The connection state.
 * @returns {boolean} connection.isConnected Whether the authenticated user is currently connected.
 * @returns {boolean} connection.isPending Whether the authenticated user's connection is currently pending.
 * @returns {Object} connection.error The error object if an error occurred.
 * @returns {string} connection.error.message The error message.
 * @returns {string} connection.error.stack The stack trace of the error.
 */
getConnection () {
  return {
    isConnected: true,
    isPending: false,
    error
  }
}

这将提供以下文档输出:

     Get the connection state.

    getConnection(): Object

    Returns
    Object: connection The connection state.
    boolean: connection.isConnected Whether the authenticated user is currently connected.
    boolean: connection.isPending Whether the authenticated users connection is currently pending.
    Object: connection.error The error object if an error occurred.
    string: connection.error.message The error message.
    string: connection.error.stack The stack trace of the error.

原文由 Matt Pengelly 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题