首页 > 解决方案 > 箭头函数中的可选参数

问题描述

我有一个像这样的处理程序

handleSelect = (k0, k1, v) => {
    ...
    }
};

我想让k1这里成为可选的。有什么好办法吗?

标签: javascriptecmascript-6

解决方案


没有什么好办法。这不是特定于 React 或箭头的。

中间带有可选参数的可变参数函数需要解析参数:

handleSelect = (...args) => {
  let k0, k1, v;
  if (args.length > 2) {
    [k0, k1, v0] = args;
  } else {
    [k0, v0] = args;
    k1 = 'default';
  }
  ...
};

这可能会导致 API 晦涩难懂。对于具有多个参数的函数,其中一些参数是可选的,更好的方法是接受带有选项的对象。函数不依赖于这种方式的参数顺序:

handleSelect = ({ k0, k1 = 'default', v }) => {
  ...
};

推荐阅读