Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/439.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript fat arrow函数返回的rest运算符_Javascript_Typescript_Arrow Functions_Ecmascript Next - Fatal编程技术网

Javascript fat arrow函数返回的rest运算符

Javascript fat arrow函数返回的rest运算符,javascript,typescript,arrow-functions,ecmascript-next,Javascript,Typescript,Arrow Functions,Ecmascript Next,是否可以将下面的代码写在一行中(不带return关键字) 是的,使用简明箭头形式,将对象初始值设定项括在()中: 您需要(),因为否则,对象初始值设定项的{将被读取为函数体的开头{。(通过使用简洁的箭头形式,将对象初始值设定项封装在(): 您需要(),因为否则对象初始值设定项的{将被读取为{作为函数体的开头(相反,它使其成为一个带有隐含返回的表达式体使用对象扩展运算符安全吗?@sabithpocker:它不是运算符。这取决于您的目标环境和您是否正在传输。rest/spread属性目前是一个表达式

是否可以将下面的代码写在一行中(不带return关键字)


是的,使用简明箭头形式,将对象初始值设定项括在
()
中:


您需要
()
,因为否则,对象初始值设定项的
{
将被读取为函数体的开头
{
通过使用简洁的箭头形式,将对象初始值设定项封装在
()


您需要
()
,因为否则对象初始值设定项的
{
将被读取为
{
作为函数体的开头(相反,它使其成为一个带有隐含
返回的表达式体

使用对象扩展运算符安全吗?@sabithpocker:它不是运算符。这取决于您的目标环境和您是否正在传输。rest/spread属性目前是一个表达式体,但在当前版本的Chrome和Firefox中提供(我手头没有Edge),所以可能已经接近第4阶段了。几乎可以肯定它会出现在ES2018快照规范中。(但问题不是关于属性rest/spread,而是箭头函数。:-)好的,谢谢。有人警告我不要使用它(在Typescript中)在回答另一个问题时。只是想知道这是否是一个有效的警告。使用object spread operator安全吗?@sabithpocker:它不是一个操作符。这取决于你的目标环境和你是否正在传输。属性rest/spread目前是一个有效的警告,但它在当前版本的Chrome和Firefox中提供(我手头没有Edge),因此可能接近第4阶段。它几乎肯定会出现在ES2018快照规范中。(但问题不是关于属性的剩余/扩展,而是箭头函数。:-)好的,谢谢。有人警告我不要使用它(在Typescript中)回答另一个问题时。只是想知道这是否是一个有效的警告。FWIW:
..
不是运算符(它不可能是;运算符只有一个结果值),在上面的上下文中,
..
是扩展语法,而不是rest语法。关于rest vs spread,您是对的。但是您确定“运算符”吗?他们在MDN中使用该名称(请参阅URL的最后一部分)在Microsoft文档中:是的,非常确定:-)您不会看到它在或中被称为运算符。(再次说明:它不能是运算符,它没有单个结果值,并且不能在所有表达式上下文中使用)。请记住,MDN是由社区编辑的。这很好,但偶尔会有人引入错误。不幸的是,该页面的原始作者在标题中包含了“operator”。这篇文章很久以前就被修复了,但遗憾的是URL仍然存在。无法给你MS出错的原因。:-)FWIW:
不是operator(不可能;运算符只有一个结果值),在上面的上下文中,
..
是扩展语法,而不是rest语法。关于rest vs spread,您是对的。但是您确定“运算符”吗?他们在MDN(请参阅URL的最后一部分)和Microsoft文档中使用该名称:是的,非常确定。:-)您不会在或中看到它被称为运算符。(再次强调:它不能是运算符,它没有单一的结果值,也不能在所有表达式上下文中使用)。请记住,MDN是社区编辑的。它很好,但偶尔会有人引入错误。不幸的是,该页面的原始作者包含了“运算符”在标题中。这篇文章很久以前就被修复了,但遗憾的是URL仍然存在。不能给你一个MS出错的原因。:-)
elements.map(element => {
  return {...element, selected: false};
})
elements.map(element => ({...element, selected: false}));
// ---------------------^-----------------------------^