以前,我总是记录我的对象参数,如下所示:
/**
* 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
在您的代码中命名还是具有任何名称。