【问题标题】:ECMAScript 6 spread syntax in object deconstruction. Support in TypeScript and BabelECMAScript 6 在对象解构中扩展语法。支持 TypeScript 和 Babel
【发布时间】:2015-09-15 21:25:15
【问题描述】:

以下是有效的 ECMAScript 6 吗? 最新版本的 Babel 似乎支持它,但 TypeScript 不支持它。 我找不到任何处理这种情况的 ES6 参考。

var a = { foo : 'foo' };
var b = { ...a };

【问题讨论】:

标签: javascript typescript ecmascript-6 babeljs typescript1.5


【解决方案1】:

不,这不是有效的 ECMAScript 6。ES6 仅支持函数参数和数组解构中的 rest 语法,以及函数调用和数组构造中的扩展语法。

好像是最新版的 Babel 支持的

Babel 确实将objectRestSpread ES7 proposal 实现为experimental plugin。您不应该使用此功能,它可能随时中断。

【讨论】:

  • 第二个链接坏了
【解决方案2】:

TypeScript 2.1 确实支持此功能。

Here

【讨论】:

    【解决方案3】:

    我犯了以下错误

    const o = { p : { q:1, r:2 } };
    const {{q,r}} = o;
    

    后来意识到直接qr从p对我来说很重要,所以在我的情况下基本上是语法错误,所以更正具有以下语法的代码。

    const {p:{q,r,s=9}} = o;
    console.log(q,r,s); // 1,2,9
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-09-14
      • 1970-01-01
      • 2014-10-04
      • 1970-01-01
      • 2021-05-06
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多