Objects Flashcards

1
Q

Что такое объект?

A

Объект - это справочник свойств, состоящих из ключей и значений определенных типов.
В качестве ключей свойства допускаются типы string, number и symbol.
Для получения типа значения возможно применение оператора доступа по индексу.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Каки существуют возможности типизации объектов?

A
  1. Обязательные свойства. Присваиваемый объект должен содержать обязательные свойства.
  2. Опциональные свойства. Присваиваемый объект может не содержать опциональные свойства.
  3. При включенной настройке strictNullChecks значение опционального свойства неявно получает тип с союзом с undefined.
  4. При включенной настройке exactOptionalPropertyTypes значение опционального свойства получается тип с союзом с undefined только при чтении свойства.
  5. Возможно сузить тип свойства, отсеяв undefined и null, применив оператор !.
  6. Защищенные свойства. Значение защищенного свойства запрещено изменять.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Как создать общий объект?

A
  1. Объект может быть определен как справочник, состоящий из однотипных ключей и значений.
  2. Тип объект возможно описать пересечением двух объектов с оператором &. При совпадении свойств, типы значений станут пересечением значений соответствующих свойств или never, если они несовместимы.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Какие существуют возможности маппинга объектов?

A

Новые объекты могут создавать из двугих типов с помощью маппинга:
1. Добавление/удаление защиты
2. Добавление/удаление опциональности
3. Переутверждение ключей
4. Исключение свойств

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Что такое интерфейс?

A

Интерфейс - это иная форма типизации объектов.
1. Интерфейс можно расширить.
2. Интерфейс может быть унаследован

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Как типизируются функции?

A

Функции позволяют типизировать обязательные параметры и возвращаемое значение.
1. Параметры функции могут быть опциональными или вычислены из дефолтного значения.
2. При использовании правила strictNullCheck опциональным параметрам присваивается тип с союзом с undefined.
3. Тип this устанавливаетсы как параметр.
4. Нетипизированным параметрам присваивается специальный тип any.
5. Функции являются вызываемыми объектами, поэтому их можно описать как объекты с сигнатурами вызова и конструктора.
6. Функции, сигнатуры вызова, методы объекта, могут быть описаны с перегрузками (overloads).

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Как типизируются массивы?

A

Массив - это набор однотипных значений любой длины.
Запись типа string[] является алиасом универсального интерфейса Array<string>.
Элементы массива могут быть защищены от изменения.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Как типизируются кортежи?

A

Кортеж - это набор предопределенных индексированных типов.
1. Обязательные элементы
2. Идентификация элементов
3. Опциональные элементы
При включенном правиле strictNullChecks значению опционального элемента неявно присваивается тип с союзом с undefined.
При включенном правиле exactOptionalPropertyTypes присваивание типа значения с союзом с undefined происходит только при чтении свойства.
4. Тип rest

How well did you know this?
1
Not at all
2
3
4
5
Perfectly