Массивы объектов в TypeScript

Массивы в TypeScript могут содержать в себе не только примитивы, но и объекты определенных типов. Давайте посмотрим на примерах, как работать с такими массивами.

Массив юзеров

Пусть у нас есть интерфейс, задающий юзера:

typescriptinterface User {
  name: string,
  age: number
}

Объявим массив, указав в качестве типа его содержимого объекты с юзерами (т.е. объекты, реализующие наш интерфейс):

typescriptlet arr: User[] = [];

Заполним наш массив данными указанного типа:

typescriptarr.push({name: 'john', age: 30});
arr.push({name: 'eric', age: 40});

Массив дат

Объявим массив, хранящий в себе массив дат:

typescriptlet arr: Date[] = [];

Заполним этот массив датами:

typescriptarr.push(new Date(2030, 11, 31));
arr.push(new Date(2020, 11, 31));

Массив DOM элементов

Объявим массив, содержащий в себе дом элементы:

typescriptlet arr: HTMLElement[] = [];

Заполним наш массив данными:

typescriptlet lst: NodeList = document.querySelectorAll('div');
let arr: HTMLElement[] = Array.from(lst);

Практические задачи

Задание 1

Сделайте массив, элементы которого будут регулярными выражениями.

Задание 2

Сделайте массив, элементы которого будут промисами.

Задание 3

Сделайте интерфейс, описывающий работника. Сделайте массив, состоящий из объектов с этими работниками.