首页 > 解决方案 > TypeScript - 为什么在地图中使用扩展运算符?

问题描述

return items.map(item => ({
      ...item,
      score: Math.round((item.rate / 100) * 5)
    }));

我知道它会改变score每个对象的值items。但是为什么会有...item

使用它有什么好处?

是否等于这个?:

return items.map(item => ({
          item.score: Math.round((item.rate / 100) * 5);
          return item;
        }));

标签: javascripttypescripttypescript2.0

解决方案


如果您想创建现有值的浅表副本并以不可变方式更新对象/数组,则使用扩展运算符很​​有用。

扩展语法的一种常见用法是在将Redux用于 React.js 或将 NgRX用于 Angular 时。

对于您提供的代码,

return items.map(item => ({
  ...item,
  score: Math.round((item.rate / 100) * 5)
}));

生成的数组将是items原始属性/值旁边的数组的浅表副本,然后是数组score的每个对象中属性的更新值items


推荐阅读