Skip to content

鼓励作者:欢迎 star 或打赏犒劳

展开运算符

TIP

在 JavaScript 和 TypeScript 中,...(展开运算符)是一个非常有用的操作符,它允许你将一个可迭代对象(如数组或对象)的元素展开到另一个位置,如数组字面量、函数调用的参数列表或对象字面量中。

在你的例子中,...user 是在对象字面量的上下文中使用的,这意味着它会将 user 对象的所有可枚举自有属性展开为独立的键值对。换句话说,...user 将 user 对象的属性解构并直接插入到新对象中,这在复制或合并对象时特别有用,同时可以方便地添加或修改某些属性,如你代码中给 email 添加域名后缀的例子。

具体到这段代码:

js
return {
  ...user,
  email: `${user.email}@example.com`,
}

这行代码创建了一个新对象,首先通过 ...user 展开 user 对象的所有属性,然后单独设置了 email 属性,将其值更新为原 email 后加上 "@example.com"。这样,如果 user 对象有其他属性(比如 id 和 name),它们也会被保留在新对象中,而不仅仅是修改了 email。

驾狗师祝您今天快乐!