Сложный

Тест по TypeScript — Продвинутый уровень

Дженерики
Сужение типов
Расширенные типы
Типизация функций