Skip to content

Latest commit

 

History

History
28 lines (17 loc) · 2.68 KB

File metadata and controls

28 lines (17 loc) · 2.68 KB

Домашнее задание: Глубокое сравнение объектов (deepEqual) на TypeScript

Цель и результат домашнего задания

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

Описание домашнего задания

Переписать (или дополнить) функцию глубокого сравнения объектов deepEqual, реализованную ранее на JavaScript, с использованием TypeScript. Необходимо добавить строгую типизацию, использовать интерфейсы для описания структур данных и аннотации типов для всех аргументов и возвращаемых значений.

Задачи:

  • Переписать функцию deepEqual на TypeScript, добавить аннотации типов для всех параметров и возвращаемых значений.
  • Использовать интерфейсы или типы для описания структур сравниваемых объектов.
  • Покрыть функцию тестами (минимум 5 тестов на разные случаи: примитивы, массивы, вложенные объекты, циклические ссылки, сравнение разных типов).
  • Оформить пример использования функции с разными типами данных.

Критерии

Домашнее задание "Принято" при наборе 3 и более баллов, иначе "На доработку".

  1. Функция deepEqual переписана на TypeScript: корректная типизация (параметры/возвраты, интерфейсы/типы), корректное сравнение вложенных структур и обработка циклических ссылок — 3 балла
  2. Есть тесты (минимум 5), покрывающие примитивы, массивы, вложенные объекты, циклические ссылки и сравнение разных типов — +1 балл
  3. Пример(ы) использования и чистота кода — +1 балл

Максимальный балл - 5

Формат сдачи: Ссылка на Github