背景
我指的是...
操作员。许多人喜欢并支持执行以下操作的想法:
const obj = { "hello": 1 };
const obj2 = { "world": 2, ...obj };
Problem
与典型的语法相比,我个人更喜欢这种语法Object.assign
但最近当我开始在我的项目中使用它时,我遇到了这个 eslint 错误:
Object Spread - Parsing error: Unexpected token
该问题的解决方案可以参见以下链接:
- https://github.com/eslint/eslint/issues/4052 https://github.com/eslint/eslint/issues/4052
- https://eslint.org/docs/1.0.0/user-guide/configuring https://eslint.org/docs/1.0.0/user-guide/configuring
这里的问题是,要使用这样的语法,我们需要启用experimentalObjectRestSpread
eslint 上的标志。该标志附带以下警告:
ExperimentalObjectRestSpread - 启用对实验对象休息/传播属性的支持(重要提示:这是一个实验性功能,将来可能会发生重大变化。建议您不要编写依赖于此功能的规则,除非您愿意在使用时产生维护成本变化。)
在验证该提案后,我意识到它处于第三阶段:https://github.com/tc39/proposal-object-rest-spread https://github.com/tc39/proposal-object-rest-spread
有关不同阶段的更多信息可以在这里查看:
- http://2ality.com/2015/11/tc39-process.html http://2ality.com/2015/11/tc39-process.html
Question
- S3 中向后兼容性更改的可能性有多大?
- S3 撤回了多少提案?
S3 中向后兼容性更改的可能性有多大?
低且不返回第 2 阶段(请参阅下一个问题)。
S3 撤回了多少提案?
这种情况很少见,但确实会发生。例如,装饰者 https://github.com/tc39/proposal-decorators处于第 3 阶段一段时间,但已回滚到第 2 阶段。同样,类字段位于第 3 阶段,但在 11 月又回到第 2 阶段(此后[再次]进行了拆分,其中类公共实例字段和私有实例字段 https://github.com/tc39/proposal-class-fields提案再次回到第 3 阶段,留下静态类字段和私有静态方法 http://github.com/tc39/proposal-static-class-features/在第 2 阶段)。
您可以通过查看以下内容来了解事物的发展方式history https://github.com/tc39/proposals/commits/master/README.md在 README.md 上https://github.com/tc39/proposals https://github.com/tc39/proposals。不过,这可能会有点痛苦。
在 ECMA 第 3 阶段使用提案在统计上是否安全?
这取决于您所说的“统计安全”是什么意思。如果您想要高度确定性,请将自己限制在第 4 阶段。
特别是关于对象休息/传播,它在 Chrome 中发布的 V8 版本和 Firefox 中发布的 SpiderMonkey 的当前版本中实现(不是在标志后面)。在这里尝试一下:
const a = {answer: 42};
const b = {question: "Life, the Universe, and Everything", ...a};
console.log(b);
On 第一天 https://github.com/rwaldron/tc39-notes/blob/master/es8/2017-11/nov-28.md11 月 TC39 会议的状态更新为:
KCL:Object spread有可能进入es2018吗?
BT:如果有人可以制作 PR 并将其列入一月份的议程,那么我们就可以将其放入。
...听起来可能是一月份的第四阶段。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)