Встроенные типы объектов в TypeScript

В JavaScript существует много встроенных классов, имеющих свой тип для объектов. К примеру, объекты с датой, с регулярными выражениями, а также DOM элементы.

Давайте посмотрим на примерах.

Дата

Пусть в переменной будет храниться дата, которую мы создадим средствами JavaScript через команду new Date.

Получится, что наша переменная будет иметь тип Date:

let date: Date;

Давайте запишем в эту переменную объект с датой, содержащей текущий момент времени:

let date: Date = new Date;

А теперь запишем объект с датой, содержащей заданный момент времени:

let date: Date = new Date(2030, 11, 31);

Регулярки

Давайте сделаем переменную, содержащую регулярное выражение:

let reg: RegExp;

Запишем в нее регулярное выражение:

let reg: RegExp = /.+?/;

Либо воспользуемся альтернативным способом задания регулярки:

let reg: RegExp = new RegExp('.+?');

DOM элементы

Для DOM элементов также есть свои типы данных. Посмотреть их иерархию можно, к примеру, вот тут. Давайте посмотрим работу DOM элементами на примере. Пусть у нас есть следующий див:

<div></div>

Давайте получим ссылку на этот див в переменную. Все DOM элементы относятся к типу HTMLElement. Укажем этот тип нашей переменной:

let elem: HTMLElement;

Запишем теперь в эту переменную ссылку на наш див:

let elem: HTMLElement = document.querySelector('div'); console.log(elem);

Все дивы, помимо того, что являются DOM элементами с типом HTMLElement, также относятся к типу HTMLDivElement (аналогичные типы есть и у других тегов). Давайте для нашего элемента укажем более точный тип:

let elem: HTMLDivElement = document.querySelector('div'); console.log(elem);

Коллекции

Пусть у нас есть несколько дивов:

<div></div> <div></div> <div></div>

Давайте запишем в переменную коллекцию этих DOM элементов:

let lst: NodeList = document.querySelectorAll('div');

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

Сделайте переменную, которая будет содержать объект с датой.

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

Сделайте переменную, которая будет содержать промис.

Сделайте переменную, которая будет содержать DOM элемент.

Сделайте переменную, которая будет содержать ссылку на тег ul.

Сделайте переменную, которая будет содержать коллекцию Map.

Сделайте переменную, которая будет содержать коллекцию Set.

Сделайте переменную, которая будет содержать коллекцию NodeList.

Сделайте переменную, которая будет содержать коллекцию HTMLCollection.