JsDoc में शून्य कैसे लौटाएं?


81

क्या JsDoc में शून्य लौटाने के लिए कोई विधि या फ़ंक्शन घोषित करने का कोई निर्दिष्ट तरीका है? वर्तमान में मैं इस विश्वास में हूं कि voidडिफ़ॉल्ट रिटर्न मान है, और अन्य रिटर्न मान विशेष रूप से प्रदान किए जाने चाहिए:

/**
 * @return {Integer} The identifier for ...
 */

eslint.org/docs/rules/valid-jsdoc का कहना है कि आह्ह@returns {void} किसी ने पहले ही इसका उल्लेख किया है: stackoverflow.com/a/45450508/470749
रयान

जवाबों:


93

मुझे विश्वास नहीं है कि आपको JsDoc में प्रकारों के एक सेट से चुनना होगा ... आप अपनी इच्छानुसार किसी भी प्रकार के नाम का उपयोग कर सकते हैं (घुंघराले ब्रेसिज़ यह एक प्रकार का संकेत देते हैं), इसलिए आप बस कर सकते हैं:

@return {Void}

हालाँकि, यह संभवतः जावास्क्रिप्ट के लिए अधिक सही है:

@return {undefined}

भी हो सकता है @returns {void}?
नर्कबॉय

8
@ यूजीन nullआवश्यक रूप से एक ही नहीं हैundefined
BadHorsie

6
@return {Void}IntelliJ IDE में कोड निरीक्षण चेतावनी फेंकता है @return {undefined}और @return {void}नहीं करता है।
शनीमल

4
nullकभी भी ऐसा नहीं है undefined। जब कुछ अशक्त होता है, तब भी इसे परिभाषित किया जाता है, लेकिन इसका कोई मूल्य नहीं है। अपरिभाषित है, ठीक है, परिभाषित नहीं है :-)
मैग्नस एरिकसन

3
एक्मास्क्रिप्ट विनिर्देश भाषा के प्रकारों को सूचीबद्ध करते हैं। voidऑपरेटर द्वारा दिया गया मान है undefined। मूल्य undefinedका प्रकार का नाम है Undefined, भले ही typeof undefinedमूल्यांकन करता है "undefined"। नाम Voidको एक्मास्क्रिप्ट विनिर्देशों में परिभाषित नहीं किया गया है।
हारून मैंसिम

104

बंद करने वाला

Google के क्लोजर कंपाइलर के प्रलेखन के अनुसार यदि कुछ भी नहीं लौटाया जा रहा है, तो @ ग्रेट एनोटेशन को छोड़ दिया जाना चाहिए।

यदि कोई वापसी मान नहीं है, तो @return टैग का उपयोग न करें।

स्रोत: https://developers.google.com/closure/compiler/docs/js-for-compiler#tags

jsdoc- टूलकिट

हालाँकि आगे के प्रलेखन में यह भी कहा गया है कि रिटर्न टाइप और रिटर्नडेसक्रिप्शन वैकल्पिक पैरामीटर हैं।

रिटर्न टाइप - वैकल्पिक: रिटर्न वैल्यू का प्रकार।

वापसी - वैकल्पिक: कोई अतिरिक्त विवरण।

स्रोत: https://code.google.com/p/jsdoc-toolkit/wiki/TagReturns

सारांश

आप या तो रिटर्न एनोटेशन छोड़ सकते हैं या इसे बिना किसी पैरामीटर के शामिल कर सकते हैं।


10
यह उत्तर वास्तव में स्वीकृत की तुलना में बेहतर है। यदि आपका फ़ंक्शन परिणाम नहीं देता है, तो आपको यह नहीं कहना चाहिए कि यह undefinedपहले से ही जावास्क्रिप्ट में निहित है और जो भी आपके डॉक्स को पढ़ता है भ्रम पैदा कर सकता है।
लुसियो पावा

2
नहीं, मैं असहमत हूं और कहता हूं कि यह अच्छा विचार नहीं है। जब कुछ याद आ रहा है तो आपको नहीं पता कि यह जानबूझकर था या नहीं। वापसी प्रकार के बारे में स्पष्ट होने के बावजूद जब undefinedआप अपने इरादे को बताने के लिए खुद को मजबूर करते हैं, तो बाद में इसे पढ़ते समय भी अच्छा लगता है। बस स्पष्ट करने के लिए, मैं यह नहीं कह रहा हूं कि एक बेकार जेएस बयान शामिल होना चाहिए, मैं कह रहा हूं कि हमेशा एक जेएसडीओसी @returnsबयान शामिल होना चाहिए (मैं बेकार कोड के खिलाफ हूं, लेकिन "बेकार" टिप्पणियों के खिलाफ नहीं)।
मूर्रे

IMO यह समझ में नहीं आता है कि यदि आपके कार्य या विधि किसी अन्य मान को लौटाते हैं, तो यह अपरिभाषित है कि किसी प्रकार का रिटर्न किस प्रकार का है, तो यह निर्दिष्ट करें:@returns {Array|undefined} - returns array if operation successful, otherwise returns undefined
ग्रेडफ़ॉक्स

19

ESlint डॉक्स को देखकर वे उपयोग करते हैं @returns {void}

स्रोत: http://eslint.org/docs/rules/valid-jsdoc

चूँकि मुझे @returnsकुछ मामलों में कोड को धकेलने के लिए परीक्षणों को पारित करने के लिए प्रत्येक फ़ंक्शन के लिए प्रदान करने की आवश्यकता है, जो मेरे मामले में आवश्यक है।


1

यदि आपको ज़ोर से कहने की ज़रूरत है कि कुछ भी वापस नहीं किया गया है, तो आप कह सकते हैं कि फ्री-फॉर्म विवरण में । यह उन स्थितियों को स्पष्ट करने के लिए उपयोगी है जहां उपयोगकर्ता कुछ वापस करने की उम्मीद कर सकता है। बेशक फ़ंक्शन के उचित नामकरण और मापदंडों को अकेले अपेक्षित वापसी प्रकार स्पष्ट करना चाहिए, लेकिन यह हमेशा संभव नहीं हो सकता है।

/**
 * This is a funny function. Returns nothing.
 * @param {string} a joke.
 */
var funny = function (joke) {
  console.log(joke);
};
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.