63

मैं जेएसडोक को वापस लौटाए गए ऑब्जेक्ट की संरचना के बारे में कैसे बता सकता हूं। मैं @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 

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

उत्तर

106

seperatly परिभाषित करें:

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

धन्यवाद। एकाधिक '@ वापसी' कथन वास्तव में काम करते हैं, लेकिन वे आउटपुट में सूचीबद्ध हैं जैसे कि वे कई रिटर्न थे (एक बुलेट प्वाइंट स्टेटस 'पॉइंट - ऑब्जेक्ट' और फिर 'पॉइंट.एक्स - नंबर' और' पॉइंट 'के लिए दो अन्य बुलेट पॉइंट .y - संख्या')। जबकि मैं इसके साथ रह सकता हूं, मुझे लगता है कि लौटे ऑब्जेक्ट का संघनित आउटपुट होने का कोई तरीका नहीं है? या कम से कम 'point.x' और 'point.y' इंडेंट के लिए प्रविष्टियां हैं? – BlackWolf

+0

ने अभी तक दूसरा उदाहरण आजमाया है? – BGerrissen

+0

हां, यह सबसे अच्छा विकल्प प्रतीत होता है। मैंने सोचा कि गैर-नामित रिटर्न इकाई रखने का कोई तरीका हो सकता है, लेकिन दस्तावेज आउटपुट के संदर्भ में '@ टाइपिफ़' दृष्टिकोण सबसे स्पष्ट है, धन्यवाद! – BlackWolf

10

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

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

जब मैं ऐसा करता हूं लेकिन Google क्लोजर कंपाइलर का उपयोग करता हूं, तो मुझे चेतावनी मिलती है: "गैर-कन्स्ट्रक्टर को चालू नहीं किया जा सकता"। मैंने समारोह में @constructor जोड़ने (@return के ऊपर) जोड़ने की कोशिश की लेकिन इससे मदद नहीं मिली। अगर कोई जानता है कि इसे कैसे ठीक किया जाए, तो कृपया मुझे बताएं। धन्यवाद! – AndroidDev

संबंधित मुद्दे