参数 – JSDoc中的文档破坏函数参数

前端之家收集整理的这篇文章主要介绍了参数 – JSDoc中的文档破坏函数参数前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
以前我一直记录我的对象参数如下:
/**
 * 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
}

我觉得我上面的方法并不明显,该函数期望一个对象而不是两个不同的参数.

我可以想到的另一种方式是使用@typedef,但这可能会是一个巨大的混乱(特别是在一个更大的文件中有许多方法)?

/**
 * @typedef {Object} doSomethingConfiguration
 * @property {String} foo
 * @property {Boolean} [bar] - Optional value
 */

/**
 * Description of the function
 *
 * @param {doSomethingConfiguration}
 * @return {String}
 */
function doSomething ({ foo,bar);
  // do something
}

解决方法

这是它的意图,就我在 jsdoc3 repo可以找到:
/**
 * My cool function.
 *
 * @param {Object} obj - An object.
 * @param {string} obj.prop1 - Property 1.
 * @param {string} obj.prop2 - Property 2.
 */
var fn = function ({prop1,prop2}) {
  // Do something with prop1 and prop2
}

所以,你的第一个例子是非常正确的.

更深层次的另一个例子:

/**
 * Nesting example.
 *
 * @param {object} param
 * @param {number} param.a - First value
 * @param {object} param.b - Wrapper
 * @param {number} param.b.c - Second value
 * @return {number} sum a and b
 */
letters = ({a,b: {c}}) => a + c;
原文链接:https://www.f2er.com/js/152909.html

猜你在找的JavaScript相关文章