इनलाइन JSDoc का उपयोग करके परम को कैसे इंगित किया जाए?


119

@ अपरम के लिए जेएसडीओसी विकि के अनुसार आप इंगित कर सकते हैं कि @param वैकल्पिक है

/**
    @param {String} [name]
*/
function getPerson(name) {
}

और आप एक परम इनलाइन का उपयोग करके संकेत कर सकते हैं

function getPerson(/**String*/ name) {
}

और मैं उन्हें निम्नलिखित की तरह जोड़ सकता हूं, जो ठीक काम करता है।

/**
    @param [name]
*/
function getPerson(/**String*/name) {
}

लेकिन मैं यह जानना चाहूंगा कि यदि संभव हो तो यह सब इनलाइन करने का एक तरीका है।

जवाबों:


123

से आधिकारिक दस्तावेज :

वैकल्पिक पैरामीटर

फू नाम का एक वैकल्पिक पैरामीटर।

@param {number} [foo]
// or:
@param {number=} foo

डिफ़ॉल्ट मान 1 के साथ एक वैकल्पिक पैरामीटर फू।

@param {number} [foo=1]

7
मैं पूछ रहा था कि यह कैसे करना है। जो उदाहरण आप प्रदान कर रहे हैं, वह वही है जो मैंने अपने प्रश्न में दिखाया था।
स्टडजेक

67

कुछ खुदाई के बाद मैंने पाया कि ये ठीक हैं

/**
 * @param {MyClass|undefined}
 * @param {MyClass=}
 * @param {String} [accessLevel="author"] The user accessLevel is optional.
 * @param {String} [accessLevel] The user accessLevel is optional.
 */

की तुलना में बस थोड़ा अधिक नेत्रहीन अपील function test(/**String=*/arg) {}


9
वे वैध हैं (और JSDoc मदद में प्रलेखित), लेकिन वे इनलाइन नहीं हैं - जो कि मैं देख रहा था।
स्टूजेक

प्रश्न इनलाइन JSDoc नोटेशन के बारे में है। यह दिलचस्प जानकारी है, लेकिन इस सवाल का जवाब नहीं देता है
केन बेलोज़

51

मुझे Google क्लोजर कंपाइलर प्रकार के भावों का उपयोग करके ऐसा करने का एक तरीका मिला । आप इस तरह के प्रकार के बाद एक बराबर चिन्ह लगाते हैं: function test(/**String=*/arg) {}


10
WebStorm / IntellIDEA इस संकेतन का समर्थन करता है
पीटर एरन

3
हां, तो मुझे लगता है कि इसका जवाब के रूप में चिह्नित करने के लिए इसकी पर्याप्त स्वीकृति मिली।
स्टडजेक

4
@PeterAronZentai, मैं WebStorm / IntelliIDEA जोड़ूंगा, मेरे द्वारा इसके लिए एक फीचर अनुरोध डालने के परिणामस्वरूप इसका समर्थन करता है :)। वे अब Google क्लोजर कंपाइलर प्रकार के अधिकांश भावों का समर्थन करते हैं जो बहुत अच्छा है।
स्टूजेक 14

1
वैकल्पिक दूसरे पैरामीटर के लिए मेरे लिए काम नहीं कर रहा है।
डेववले

1
कृपया लिंक ठीक करें; यह एक 404 पृष्ठ की ओर जाता है
छावेव १har ’

3

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

function demo(
  /** @type {String} */ mandatory,
  /** @type {Number} */ optional1 = 0,
  /** @type {Number} optional2 = undefined,
)

यदि आप demoअपने IDE पर मंडराते हैं तो आपको दोनों को देखना चाहिए optional1और optional2अब वैकल्पिक रूप में दिखाना चाहिए । VSCode में जो ?तर्क नाम (टाइपस्क्रिप्ट नोटेशन) के बाद इंगित होता है । यदि आप को दूर = undefinedसे optional2आप केवल देखेंगे optional1जैसे मैं उपरोक्त अनुच्छेद में alluded वैकल्पिक जा रहा पाठ्यक्रम बकवास है जो इसलिए यहाँ डिफ़ॉल्ट मान स्पष्ट होना चाहिए।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.