在 TypeScript 中将对象推送到数组
Push an object to an Array in TypeScript
将对象推送到数组:
- 将数组的类型设置为
Type[]
。 - 将对象的类型设置为
Type
。 - 使用
push()
方法将对象推送到数组。
索引.ts
interface Animal { name: string; age: number; } const arr: Animal[] = []; const a1: Animal = { name: 'Alfred', age: 3, }; arr.push(a1); // 👇️ [{name: 'Alfred', age: 3}] console.log(arr);
我们将数组的类型设置为Animal[]
,因此我们可以Animal
使用
Array.push
方法将类型的对象推送到它。
如果您从远程源(例如数据库)获取对象,您可能必须
断言其类型。
索引.ts
interface Animal { name: string; age: number; } const arr: Animal[] = []; const a1 = { name: 'Alfred', age: 3, } as unknown as Animal; // 👈️ type assertion arr.push(a1); // 👇️ [{name: 'Alfred', age: 3}] console.log(arr);
有时我们拥有 TypeScript 无法知道的有关值类型的信息。从远程 API 获取数据时通常会出现这种情况。
在这种情况下,我们可以使用类型断言将对象设置为特定类型,这样我们就可以将它推送到数组中。
如果您只有对象应包含的值,则必须在将对象推送到数组之前创建该对象。
索引.ts
interface Animal { name: string; age: number; } const arr: Animal[] = []; const a1 = {} as Animal; a1.name = 'Alfred'; a1.age = 3; arr.push(a1); // 👇️ [{name: 'Alfred', age: 3}] console.log(arr);
另一方面,如果您有多个对象,则可以将它们作为逗号分隔值传递给push()
方法,并在对方法的同一次调用中将它们推送到数组。
索引.ts
interface Animal { name: string; age: number; } const arr: Animal[] = []; const a1: Animal = { name: 'Alfred', age: 3, }; const a2: Animal = { name: 'Fred', age: 2, }; arr.push(a1, a2); // 👇️ [{name: 'Alfred', age: 3}, {name: 'Fred', age: 2}] console.log(arr);
该push
方法采用一个或多个值并将它们推送到数组中,因此我们能够将多个以逗号分隔的对象作为参数传递给它。