Раньше я всегда документировал параметры своего объекта следующим образом:
/**
* 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
в вашем коде или вообще есть какое-то имя.