में destructured समारोह पैरामीटर पहले मैं हमेशा अपने वस्तु मापदंडों प्रलेखित किया है इस प्रकार है:दस्तावेज़ JSDoc
/**
* Description of the function
*
* @param {Object} config - The configuration
* @param {String} config.foo
* @param {Boolean} [config.bar] - Optional value
* @return {String}
*/
function doSomething (config = {}) {
const { foo, bar } = config;
console.log(foo, bar);
// do something
}
लेकिन मैं अनिश्चित क्या सबसे अच्छा तरीका desctructured समारोह पैरामीटर के साथ है कर रहा हूँ। क्या मैं ऑब्जेक्ट को अनदेखा करता हूं, इसे किसी भी तरह परिभाषित करता हूं या इसे दस्तावेज करने का सबसे अच्छा तरीका क्या है?
/**
* Description of the function
*
* @param {String} foo
* @param {Boolean} [bar] - Optional value
* @return {String}
*/
function doSomething ({ foo, bar } = {}) {
console.log(foo, bar);
// do something
}
मैं ऊपर मेरी दृष्टिकोण की तरह लगता है कि समारोह एक object
और नहीं दो अलग-अलग पैरामीटर उम्मीद है कि यह स्पष्ट नहीं है।
एक और तरीका जो मैं सोच सकता था @typedef
का उपयोग करेगा, लेकिन यह एक बड़ी गड़बड़ी (विशेष रूप से कई विधियों के साथ एक बड़ी फ़ाइल में) हो सकता है?
/**
* @typedef {Object} doSomethingConfiguration
* @property {String} foo
* @property {Boolean} [bar] - Optional value
*/
/**
* Description of the function
*
* @param {doSomethingConfiguration}
* @return {String}
*/
function doSomething ({ foo, bar } = {}) {
console.log(foo, bar);
// do something
}
मुझे लगता है कि पहले दृष्टिकोण अभी भी ठीक है। कोई भी इस बात पर परवाह नहीं करता है कि ऑब्जेक्ट को आपके कोड में 'config' नाम दिया गया है या उसके पास कोई नाम है। – Bergi
वेबस्टॉर्म में मैंने पाया है कि यदि मैं केवल (बाद में विनाशकारी) पैरामीटर का वर्णन करता हूं और विनाशकारी को अनदेखा करता हूं तो यह ज्यादातर आम मामलों को छोड़कर काम करता है। तो अपने उदाहरण में, दो पैरामीटर 'foo' और' bar' का वर्णन करें। यह अंतिम समाधान नहीं है, लेकिन ऑब्जेक्ट का उपयोग करने वाले किसी भी दृष्टिकोण ने निरीक्षण त्रुटियों को जन्म दिया - और आईडीई से निरीक्षण और स्वत: पूर्णता मुझे सबसे अधिक पसंद है। –