问题标签 [spread-syntax]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1502 浏览

javascript - Redux:在二维数组上使用扩展运算符

React.js 的新手,我很难在减速器中使用扩展运算符来更新具有 2D 数组属性的状态。

例如初始状态是这样的:

绑定动作后,假设有效负载进入PRESS_LEFT

我能够更新玩家的状态,但不能更新网格。本质上我想更新坐标oldCoords并将其分配给1。

0 投票
2 回答
1337 浏览

javascript - Babel loader 错误:rest/spread 运算符不理解

当我尝试运行我的 webpack 包时,我得到了这个控制台错误:

所以扩展运算符语法不被理解。但是,我已经安装了我的加载器中包含的 babel-stage-2 预设webpack.config.js,如下所示:

我还尝试安装babel-plugin-transform-object-rest-spread并添加到.babelrc

仍然收到相同的错误。

任何帮助表示赞赏!

0 投票
1 回答
1210 浏览

javascript - ES6 Spread 运算符(Rest Parameter) - Safari 9 语法失败

更新: FelixKling 正确地指出我对这个词的使用spread operator是不正确的,应该是Rest Parameter. 使用我链接到的兼容性表,它清楚地表明Rest ParameterSafari 9 不支持。澄清它是Rest Parameter这个问题的真正答案(尽管如何重写函数的示例非常好)。


我写了一个 javascript 函数性能测试器来测试一个函数需要多长时间运行。它使用 ES6 扩展运算符 (...),它在 Firefox 中运行良好,但在 Safari 中无法正常运行(直到版本 9.1.2)。根据此兼容性图表,Safari 9 的扩展运算符得分为 9/15,我认为这是 Safari 9 的一个缺点。是否有 ES6 方法来重写它以便它可以与 Safari 9 一起使用(如果没有,为什么 9/15 中的“9” - 我认为这意味着它必须在某些情况下起作用)?

如何使用它的示例(在这种情况下,确定 3 种方法中的哪一种更快地测试元素是否已分配类):

0 投票
4 回答
8059 浏览

javascript - 使用扩展运算符更新非常深的对象

我有一个看起来像这样的对象:

我有一个 for 循环,可以将孩子的“显示”属性更改为相反的布尔值。所以我尝试用这个更新值,但没有奏效。

“appClassId”变量是我从操作中获得的变量。

如何更新子属性中的每个键,例如 state.1.children.1.show

0 投票
2 回答
1542 浏览

javascript - 为什么我的扩展语法在节点 v7.0.0 中不起作用?

我正在尝试像这样使用 Object Spread 语法:

其中 credentials 是一个以用户名和密码作为键和值的对象。但这爆炸了SyntaxError: Unexpected token ...

那么我是否必须使用 babel 设置节点才能使其正常工作?我认为现在内置了本机支持。

http://node.green/

我不能在没有Object.assignetc 的情况下使用它吗?

有人可以澄清一下吗?

0 投票
1 回答
754 浏览

reactjs - 反应扩展组件和打字稿泛型和 setState

我有一个用打字稿编写的反应组件 PageLayout:

然后我尝试像这样扩展这个组件:

问题是我在尝试调用 this.setState 时遇到错误,它告诉我“传播类型只能从对象类型创建”。任何人都知道状态可能有什么问题以及为什么我不能在其上使用扩展运算符?

0 投票
3 回答
5667 浏览

javascript - 如何在 chrome 开发工具中使用对象扩展语法

我开始使用对象扩展语法来安全地制作对象的副本,同时遵循不变性原则。

我想在 chrome 开发者控制台中使用它 - 如何做到这一点:

在此处输入图像描述

0 投票
2 回答
7569 浏览

javascript - 使用扩展运算符更改数组中的属性返回对象而不是数组

我想更改类似这样的对象的属性,这是一个简化的对象,具有原始的一些属性:

我正在像这样更改启用的状态:

它可以工作,但不是像我一样返回一个数组,而是 pivotComuns 属性,它返回一个对象,“注意我将 [] 更改为 {}”:

我做错了什么,我需要将该属性保留为数组。

0 投票
3 回答
51 浏览

javascript - 用空原型替换对象

我试图通过将其完全替换为具有一组具有空值的键的对象来刷新一些数据。

例如

每当任何一个sportScratchpads 中的值发生变化时,它都会在profileScratchpadOne和中发生变化profileScratchpadTwo

我认为正在传递一个参考。

我研究了扩展运算符、原型、构造函数,但还没有找到一种防弹、简洁的方法。

解决这个问题的最简洁的方法是什么,并且每次都传递一个新的对象?

0 投票
2 回答
2552 浏览

typescript - “__assign 未定义” - NativeScript 对象传播问题

在发生这种情况之前,我在本机脚本项目方面取得了良好进展:

JS: EXCEPTION: Uncaught (in promise): ReferenceError: __assign is not defined

这是从这行代码冒出来的:

return [...state, { ...action.payload, success: false }];

这是我的tsconfig.json

Typescript 似乎没有__assign在编译的源代码中包含它的辅助函数——这是他们实现对象扩展语法的方式。你们中的任何一个好人会碰巧知道为什么吗?