箭头功能中的可选参数

时间:2018-08-18 23:03:45

标签: javascript ecmascript-6

我有一个类似

的处理程序
handleSelect = (k0, k1, v) => {
    ...
    }
};

我想在此将k1设为可选。有什么好方法吗?

1 个答案:

答案 0 :(得分: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 }) => {
  ...
};