以前,我总是按照以下方式记录我的对象参数:
/**
* 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
或者根本没有任何名称。 - Bergifoo
和bar
。这不是最终解决方案,但使用对象的任何方法都会产生检查错误 - 而IDE的检查和自动完成是我最关心的。 - Mörre