अब तक वस्तुओं को मापदंडों / प्रकारों के रूप में दस्तावेज करने के 4 अलग-अलग तरीके हैं। प्रत्येक का अपना उपयोग है। उनमें से केवल 3 का उपयोग रिटर्न वैल्यूज को दस्तावेज करने के लिए किया जा सकता है, हालांकि।
गुणों के ज्ञात सेट के साथ वस्तुओं के लिए (वेरिएंट ए)
/**
* @param {{a: number, b: string, c}} myObj description
*/
यह वाक्यविन्यास उन वस्तुओं के लिए आदर्श है जो केवल इस फ़ंक्शन के मापदंडों के रूप में उपयोग की जाती हैं और प्रत्येक संपत्ति के आगे विवरण की आवश्यकता नहीं होती है। यह के लिए इस्तेमाल किया जा सकता @returns
के रूप में अच्छी तरह से ।
गुणों के ज्ञात सेट के साथ वस्तुओं के लिए (वेरिएंट बी)
गुण सिंटैक्स वाले पैरामीटर बहुत उपयोगी हैं :
/**
* @param {Object} myObj description
* @param {number} myObj.a description
* @param {string} myObj.b description
* @param {} myObj.c description
*/
यह वाक्यविन्यास उन वस्तुओं के लिए आदर्श है जो केवल इस फ़ंक्शन के मापदंडों के रूप में उपयोग की जाती हैं और जिन्हें प्रत्येक संपत्ति के आगे विवरण की आवश्यकता होती है। इसके लिए इस्तेमाल नहीं किया जा सकता है @returns
।
उन वस्तुओं के लिए जिनका उपयोग स्रोत में एक से अधिक बिंदुओं पर किया जाएगा
इस मामले में एक @typedef बहुत काम आती है। आप अपने स्रोत में एक बिंदु पर प्रकार को परिभाषित और के लिए एक प्रकार के रूप में उपयोग कर सकते हैं @param
या @returns
या अन्य JSDoc टैग है कि एक प्रकार का उपयोग कर सकते हैं।
/**
* @typedef {Object} Person
* @property {string} name how the person is called
* @property {number} age how many years the person lived
*/
आप इसे एक @param
टैग में उपयोग कर सकते हैं :
/**
* @param {Person} p - Description of p
*/
या एक में @returns
:
/**
* @returns {Person} Description
*/
उन वस्तुओं के लिए जिनके मूल्य समान हैं
/**
* @param {Object.<string, number>} dict
*/
पहला प्रकार (स्ट्रिंग) दस्तावेज़ों की कुंजी का प्रकार है जो जावास्क्रिप्ट में हमेशा एक स्ट्रिंग है या कम से कम हमेशा एक स्ट्रिंग के लिए मजबूर किया जाएगा। दूसरा प्रकार (संख्या) मूल्य का प्रकार है; यह किसी भी प्रकार का हो सकता है। इस वाक्यविन्यास का उपयोग भी किया जा सकता है @returns
।
साधन
दस्तावेज़ प्रकारों के बारे में उपयोगी जानकारी यहाँ मिल सकती है:
https://jsdoc.app/tags-type.html
पुनश्च:
एक वैकल्पिक मूल्य का उपयोग करने के लिए जो आप उपयोग कर सकते हैं []
:
/**
* @param {number} [opt_number] this number is optional
*/
या:
/**
* @param {number|undefined} opt_number this number is optional
*/