javascript - JSDoc: रिटर्न ऑब्जेक्ट संरचना




documentation-generation code-documentation (2)

अलग से परिभाषित करें:

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

मैं 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

मैं एक एपीआई विकसित कर रहा हूं और लोगों को उस वस्तु के बारे में जानने की जरूरत है जो उन्हें वापस मिल जाएगी। क्या JSDoc में यह संभव है? मैं JSDoc3.3.0-beta1 का उपयोग कर रहा हूं।


एक साफ समाधान के लिए एक वर्ग लिखना है और उसे वापस करना है।

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





jsdoc3