Wcześniej zawsze dokumentowałem parametry mojego obiektu w następujący sposób:
/**
* 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
}
Ale nie jestem pewien, jakie jest najlepsze podejście z opisanym parametrem funkcji. Czy po prostu ignoruję obiekt, jakoś go definiuję, czy też jak najlepiej go udokumentować?
/**
* Description of the function
*
* @param {String} foo
* @param {Boolean} [bar] - Optional value
* @return {String}
*/
function doSomething ({ foo, bar } = {}) {
console.log(foo, bar);
// do something
}
Wydaje mi się, że moje podejście powyżej nie wskazuje na to, że funkcja oczekuje object
różnych parametrów, a nie dwóch.
Innym sposobem, o którym mógłbym pomyśleć, byłby użycie @typedef
, ale może to skończyć się ogromnym bałaganem (szczególnie w większym pliku z wieloma metodami)?
/**
* @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
w Twoim kodzie, czy też ma jakąkolwiek nazwę.