Как правильно описать массив объектов, когда каждый объект имеет свою поля?

В TypeScript массив объектов можно описать с помощью использования интерфейсов или типов данных. Каждый объект будет иметь свои собственные поля, которые могут отличаться от полей других объектов в массиве.

Для начала, вам необходимо определить интерфейс или тип, описывающий поля каждого объекта в массиве. Далее, вы можете использовать этот интерфейс или тип как тип элементов вашего массива.

Давайте рассмотрим пример, когда каждый объект в массиве имеет два поля - "name" и "age". Вы можете определить интерфейс "Person" следующим образом:

interface Person {
  name: string;
  age: number;
}

Или вы можете использовать тип данных:

type Person = {
  name: string;
  age: number;
};

Затем, вы можете создать массив объектов с типом "Person":

const people: Person[] = [
  { name: "Alice", age: 20 },
  { name: "Bob", age: 25 },
  { name: "Charlie", age: 30 }
];

Теперь, каждый элемент массива "people" будет иметь поля "name" и "age", и TypeScript будет выполнять статическую проверку типов для всех операций, связанных с этим массивом.

Например, вы можете обратиться к полю "name" первого объекта в массиве следующим образом:

const firstPersonName = people[0].name;
console.log(firstPersonName); // Output: "Alice"

Также, вы можете выполнять итерацию по массиву, используя цикл for-of или методы массива, такие как map, filter и другие:

for (const person of people) {
  console.log(person.name, person.age);
}

В данном примере, TypeScript будет помогать вам предотвращать ошибки в вашем коде, так как он сможет определить неправильное обращение к полям объектов.

Таким образом, вы можете описать массив объектов с помощью интерфейсов или типов данных, что позволяет TypeScript выполнять статическую проверку типов и облегчает разработку и поддержку вашего кода.