📅  最后修改于: 2023-12-03 15:07:29.404000             🧑  作者: Mango
有时候,我们需要向一个数组中的所有对象添加同一个键值对,这时候需要遍历数组中的所有对象并逐一添加这个键值对。在 TypeScript 中,可以使用类型声明和泛型来确保代码的类型安全。
下面就是一个将 age
属性添加到一个数组的每个对象中的例子:
interface Person {
name: string;
}
const people: Person[] = [
{ name: 'Alice' },
{ name: 'Bob' },
{ name: 'Charlie' }
];
function addAge<T extends object>(arr: T[], key: string, value: number): T[] {
return arr.map(obj => ({ ...obj, [key]: value }));
}
const peopleWithAge = addAge(people, 'age', 30);
console.log(peopleWithAge);
在这个例子中,我们定义了一个 Person
接口,用于声明每个数组中的对象应该有哪些属性。接着我们定义了一个 addAge
函数,该函数接受一个泛型数组 arr
,表示要添加 age
属性的数组,key
表示要添加的键名,value
表示要添加的值。该函数使用 Array.map()
方法遍历所有对象,利用对象的展开语法 { ...obj, [key]: value }
来添加属性,然后返回一个新的数组。
最后,我们调用 addAge
函数并传入 people
数组和要添加的键名和值,得到一个新的数组 peopleWithAge
,并将其输出到控制台。
此时控制台输出如下:
[
{ name: 'Alice', age: 30 },
{ name: 'Bob', age: 30 },
{ name: 'Charlie', age: 30 }
]
以上就是在 TypeScript 中向数组中的所有对象添加键值对的方法,希望本文对您有所帮助。