पहले मैंने हमेशा अपने ऑब्जेक्ट पैरामीटर को निम्नानुसार प्रलेखित किया है:
/**
* 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
}
लेकिन मैं अनिश्चित हूं कि डिसट्रक्टेड फंक्शन पैरामीटर के साथ सबसे अच्छा तरीका क्या है। क्या मैं सिर्फ ऑब्जेक्ट को अनदेखा करता हूं, इसे किसी तरह परिभाषित करता हूं या इसे दस्तावेज करने का सबसे अच्छा तरीका क्या है?
/**
* 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आपके कोड में ऑब्जेक्ट का नाम है या उसका कोई नाम है या नहीं।