此语法是什么意思(...)

时间:2019-02-13 13:25:22

标签: syntax record reason reason-react

我正尽力进行理性反应。 在以下代码中:

let component = ReasonReact.statelessComponent("Component3");
let make = (~name, _children) => {
  ...component,
  render: self => <input type_="checkbox" />,
};

我不明白第3行(...)的含义。 当我删除它时,我收到一条错误消息:

 The record field component can't be found.

  If it's defined in another module or file, bring it into scope by:
  - Annotating it with said module name: let baby = {MyModule.age: 3}
  - Or specifying its type: let baby: MyModule.person = {age: 3}

1 个答案:

答案 0 :(得分:-1)

该表示形式称为扩展语法。这是ES6中引入的。

MDN文档中的定义和示例。链接在底部。

扩展语法允许将可迭代的对象(例如数组表达式或字符串)扩展到期望零个或多个参数(用于函数调用)或元素(用于数组文字)的位置,或将对象表达式扩展在需要扩展零位的位置期望零个或多个键值对(用于对象文字)

function sum(x, y, z) {
  return x + y + z;
}

const numbers = [1, 2, 3];

console.log(sum(...numbers));
// expected output: 6

console.log(sum.apply(null, numbers));
// expected output: 6

更多详细信息,位于:Spread Syntax