IT

JSDoc: 개체 구조를 반환합니다.

itgroup 2022. 10. 29. 14:18
반응형

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을 사용하고 있습니다.

@typdef를 사용하여 구조를 개별적으로 정의합니다.

/**
 * @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};
}

이미 게시된 제안 대신 다음 형식을 사용할 수 있습니다.

/**
 * 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.

클린솔루션이란클래스를작성하여반환하는것입니다.

/** 
 *  @class Point
 *  @type {Object}
 *  @property {number} x The X-coordinate.
 *  @property {number} y The Y-coordinate.
 */
function Point(x, y) {
  return {
        x: x,
        y: y
    };
}

/**
 * @returns {Point} The location of the event.
 */
var getEventLocation = function(e, type) {
    ...
    return new Point(x, y);
};

언급URL : https://stackoverflow.com/questions/28763257/jsdoc-return-object-structure

반응형