Научиться применять строгую типизацию и инструменты TypeScript для реализации сложных функций, закрепить навыки работы с типами, интерфейсами и аннотациями типов в реальных задачах.
Переписать (или дополнить) функцию глубокого сравнения объектов deepEqual, реализованную ранее на JavaScript, с использованием TypeScript. Необходимо добавить строгую типизацию, использовать интерфейсы для описания структур данных и аннотации типов для всех аргументов и возвращаемых значений.
Задачи:
- Переписать функцию deepEqual на TypeScript, добавить аннотации типов для всех параметров и возвращаемых значений.
- Использовать интерфейсы или типы для описания структур сравниваемых объектов.
- Покрыть функцию тестами (минимум 5 тестов на разные случаи: примитивы, массивы, вложенные объекты, циклические ссылки, сравнение разных типов).
- Оформить пример использования функции с разными типами данных.
Домашнее задание "Принято" при наборе 3 и более баллов, иначе "На доработку".
- Функция
deepEqualпереписана на TypeScript: корректная типизация (параметры/возвраты, интерфейсы/типы), корректное сравнение вложенных структур и обработка циклических ссылок — 3 балла - Есть тесты (минимум 5), покрывающие примитивы, массивы, вложенные объекты, циклические ссылки и сравнение разных типов — +1 балл
- Пример(ы) использования и чистота кода — +1 балл
Максимальный балл - 5