में जावास्क्रिप्ट कॉन्फ़िगरेशन ऑब्जेक्ट्स को कैसे दस्तावेज़ित करें मैं कुछ समय के लिए विजुअल स्टूडियो के जावास्क्रिप्ट Intellisense functionality का उपयोग कर रहा हूं और मानक एपीआई के लिए सुझाव प्रदान करता हूं, लेकिन मुझे लगता है कि मुझे विजुअल स्टूडियो नहीं मिल रहा है कॉन्फ़िगरेशन ऑब्जेक्ट्स को समझने के लिए (यानी एक वैकल्पिक ऑब्जेक्ट वाला एक ऑब्जेक्ट जिसमें फ़ंक्शन के लिए तर्क के रूप में)।विजुअल स्टूडियो इंटेलिजेंस
official JSDoc syntax पता चलता है कि एक पैरामीटर गुण होते हैं होने की उम्मीद है, तो आपको प्रत्येक के लिए एक अलग @param
लाइन बना सकते हैं और डॉट नोटेशन का उपयोग करें:
/**
* @param {Object} config
* @param {String} config.name
* @param {Number} config.gold
*/
function do_it(config) { ... }
हालांकि, विजुअल स्टूडियो नहीं मानता है - यह config
renders , config.name
, और config.gold
तीन अलग-अलग शीर्ष-स्तरीय पैरामीटर के रूप में।
इससे भी बदतर, विधि शरीर के भीतर स्वत: पूर्ण कार्यक्षमता मानकों या तो बहुत कम उनके प्रकारों को नहीं पहचानता है:
एकमात्र समाधान है कि प्रतीत होता है में भी करीब आने की विजुअल स्टूडियो उचित दस्तावेज (@constructor
और @property
टैग) के साथ कभी-कभी कन्स्ट्रक्टर फ़ंक्शंस लिखना नहीं है, जो मुझे बहुत सारे मृत कोड लिखता है और जावास्क्रिप्ट की क्लास-फ्री मानसिकता के खिलाफ भी जाता है (यही कारण है कि मैं पहले कॉन्फ़िगरेशन ऑब्जेक्ट्स पहले स्थान पर)। यह मुझे कॉन्फ़िगरेशन ऑब्जेक्ट भी लिखने नहीं देता है!
न केवल यह, लेकिन मुझे यह भी पता है कि विजुअल स्टूडियो को इसकी आवश्यकता नहीं है। उदाहरण के लिए, जब मैं this library function के लिए एक कॉल बाहर लिखा है, यह है कि तर्क वस्तु गुण id
source
कहा जाता है, की जरूरत है बटोरने के लिए सक्षम था, और target
, और उन नामों का सुझाव दिया है जब मैं एक वस्तु समारोह के तर्क के लिए शाब्दिक बनाया - एक के बिना और प्रलेखन की एक पंक्ति। ,
दी, विधि अपवाद फेंक करता है तो इन गुणों वस्तु पर नहीं हैं और सही प्रकार की नहीं हैं: मुमकिन है, यह साधारण तथ्य यह है कि वे इस्तेमाल किया थे से आया फिर भी। संपादित करें: और मैं हाल ही में ऑब्जेक्ट शाब्दिक पैरामीटर के साथ अपने कोड में प्रभाव को दोहराने में सक्षम था - मैंने एक फ़ंक्शन को एक अच्छी तरह से परिभाषित ऑब्जेक्ट के साथ बुलाया, और जब मैंने फ़ंक्शन को कहीं और कहा तो मुझे इंटेलिसेंस सुझाव दिए मेरा कोड लेकिन मेरे पास अभी भी फ़ंक्शन बॉडी के भीतर प्रकार की जानकारी या अर्थपूर्ण पहुंच नहीं है।
विजुअल स्टूडियो स्पष्ट रूप से कॉन्फ़िगरेशन ऑब्जेक्ट्स की अवधारणा को समझता है और सुझाए गए गुण प्रदान करने के लिए कुछ तर्क कर रहा है। वह एल्गोरिदम क्या है? और मैं अपने कोड को उलझाने के बिना इसका कैसे फायदा उठा सकता हूं?
प्रलेखन भाग काम नहीं करता है - ऐसा नहीं लगता है कि वीएस '@ typedef' का समर्थन करता है। हालांकि, मुझे पता चला है कि वीएस सही प्रकार को एक डमी कन्स्ट्रक्टर और टाइपपीफ, या फ़ंक्शन के पहले कॉल के पैरामीटर के साथ देगा। – TheHansinator
यह सच है, यह दस्तावेज नहीं है, लेकिन यह काम करता है, आपको सही पैरामीटर गुण और उनके प्रकार मिलेंगे। जैसा कि ऊपर बताया गया है, आपको वास्तव में 'कॉन्फ़िगरेशन' ऑब्जेक्ट को दस्तावेज़ करने के लिए डमी कन्स्ट्रक्टर की आवश्यकता नहीं है जो फ़ंक्शन से ठीक पहले हो सकता है। फ़ंक्शन पर पहली कॉल के लिए, यह मानते हुए कि फ़ंक्शन कॉल को वीएस द्वारा कुछ दृष्टांत पारित किया जा रहा है (उस ऑब्जेक्ट की तरह शाब्दिक)। मैं समझाने की कोशिश कर रहा था कि आप कुछ पुस्तकालयों के लिए इंटेलिसेन्स क्यों देख सकते थे, क्योंकि आप पहले ही जेएसडीओसी का उपयोग कर रहे हैं, मैं व्यक्तिगत रूप से पहले दृष्टिकोण के साथ जाऊंगा .. – cviejo
विजुअल स्टूडियो कम्युनिटी 2015 संस्करण 14.0.23107.0 के साथ परीक्षण किया गया, आप किस संस्करण का उपयोग कर रहे हैं ? – cviejo