In precedenza ho sempre documentato i parametri dei miei oggetti come segue:
/**
* 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
}
Ma non sono sicuro di quale sia l'approccio migliore con il parametro della funzione destrutturato. Ignoro l'oggetto, lo definisco in qualche modo o qual è il modo migliore per documentarlo?
/**
* Description of the function
*
* @param {String} foo
* @param {Boolean} [bar] - Optional value
* @return {String}
*/
function doSomething ({ foo, bar } = {}) {
console.log(foo, bar);
// do something
}
Mi sembra che il mio approccio sopra non renda ovvio che la funzione si aspetta un object
parametro diverso e non due.
Un altro modo a cui potrei pensare sarebbe quello di usare @typedef
, ma potrebbe finire per essere un enorme pasticcio (specialmente in un file più grande con molti metodi)?
/**
* @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
nel tuo codice o se ha un nome.