Bisher habe ich meine Objektparameter immer wie folgt dokumentiert:
/**
* 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
}
Ich bin mir jedoch nicht sicher, was der beste Ansatz für desstrukturierte Funktionsparameter ist. Ignoriere ich das Objekt einfach, definiere es irgendwie oder wie kann ich es am besten dokumentieren?
/**
* Description of the function
*
* @param {String} foo
* @param {Boolean} [bar] - Optional value
* @return {String}
*/
function doSomething ({ foo, bar } = {}) {
console.log(foo, bar);
// do something
}
Ich habe das Gefühl, dass mein Ansatz oben nicht offensichtlich macht, dass die Funktion einen object
und nicht zwei verschiedene Parameter erwartet .
Eine andere Möglichkeit, die ich mir vorstellen könnte, wäre die Verwendung @typedef
, aber das könnte ein großes Durcheinander sein (insbesondere in einer größeren Datei mit vielen Methoden)?
/**
* @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
in Ihrem Code benannt ist oder überhaupt einen Namen hat.