📌  相关文章
📜  typescript 如果不存在则添加属性,如果存在则合并 - TypeScript (1)

📅  最后修改于: 2023-12-03 15:05:39.653000             🧑  作者: Mango

TypeScript - 合并对象属性

在 TypeScript 中,有时候需要合并对象的属性,使得新的对象具有原始对象的所有属性,但是某些属性可能需要被改变,修改,或新添加一些属性。

解决方案

我们可以使用以下方法实现合并对象属性:

interface IUser {
  name: string;
  age?: number;
  gender?: string;
}

// 定义一个对象
const user1: IUser = {
  name: 'Alice',
  age: 25,
};

// 合并对象
const mergedUser = { ...user1, gender: 'female' };

console.log(mergedUser);
// { name: 'Alice', age: 25, gender: 'female' }

// 修改对象
const modifiedUser = { ...user1, age: 30 };

console.log(modifiedUser);
// { name: 'Alice', age: 30 }

// 添加新属性
const newUser = { ...user1, address: 'Beijing' };

console.log(newUser);
// { name: 'Alice', age: 25, address: 'Beijing' }
使用 Object.assign()

除了扩展操作符({...}),我们还可以使用Object.assign()方法来合并对象:

const user1: IUser = {
  name: 'Alice',
  age: 25,
};

const mergedUser = Object.assign({}, user1, { gender: 'female' });

console.log(mergedUser);
// { name: 'Alice', age: 25, gender: 'female' }
总结

在 TypeScript 中,我们可以使用{ ... }Object.assign()合并对象属性,使得新的对象具有原始对象的所有属性,但是某些属性可能需要被改变,修改,或新添加一些属性。这是一个非常普遍的技巧,可能会在项目中频繁使用。