3

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

let credentialsWithAuth =  { ...credentials, type: 'basic' }

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

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

http://node.green/

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

有人可以澄清一下吗?

4

2 回答 2

3

节点 7.0 中可用的扩展语法不处理对象的扩展属性。您正在寻找的是目前处于 TC39 流程第 3 阶段的对象传播语法。您可以在流程文档中找到有关流程的更多信息,并在其存储库中找到有关提案的信息。

于 2017-01-28T14:06:25.537 回答
0

是的,它仅在 node_8x 及更高版本中受支持。然而,正确的等效使用Object.assign()(不会覆盖源对象)是:

let credentials = { username : 'test', password: 'test' }
let credentialsWithAuth = Object.assign({}, { type: 'basic' }, credentials)

console.log(credentialsWithAuth)

于 2019-06-12T16:42:06.017 回答