После этого курса вы перестанете бороться с typescript и научитесь писать типы любой сложности
❔ Хочешь сделать переиспользуемый компонент, но кроме any нет идей, как это типизировать?❔ Опять ошибка в typescript и непонятно, как исправить? ❔ Боишься заходить в типы библиотек, так как там какая-то чёрная магия?На самом деле, ты не один такой! В современном typescript есть 2 совершенно разных языка:1. Первый знают все. Он нужен для статической типизации твоих компонентов. 2. А второй нужен для type level программирования. И это целый отдельный мир, о котором знают немногие.Этот курс - твой проводник в мир дженериков, typelevel программирования и сложной типизации.
✔️ Написать калькулятор и todolist на typescript типах✔️ Писать типы для кода уровня zod / redux toolkit / react-hook-form✔️ Понять, как работают типы любой библиотеки✔️ Понять любую typescript ошибку и легко решить✔️ Решать задачи уровня hard из typescript challenge
Сначала мы изучим основные инструменты type level программирования.
Темы:— Типы, как множества: union, intersection, never и unknown— Методы для манипуляции типами. Mapped types, рекурсия, condition types и infer— Научимся манипулировать типами чисел и строк— Изучим utility types с примерами их использования— Напишем свои utility types, которые часто нужны— Решим множество задач для закрепления знаний — Напишем калькулятор на typescript типах
Здесь мы научимся практическим приёмам, как использовать знания из прошлого раздела для типизации функций.
Темы:— Вывод типов— Сужение типов— Перегрузки— Builder паттерн— Virtual field паттерн— overloads hell паттерн— any implementation паттерн
Здесь мы используем знания type level программирования и паттернов для повторения типизации таких библиотек:— zod— react-hook-form— @reduxjs/toolkit— trpc
1. Весь курс состоит из небольших уроков, которые раскрывают одну тему ✔️К каждому уроку будет небольшое домашнее задание
2. Раз в неделю проходят QA сессии, где я проверяю домашки тех, кто успел их сделать до дедлайна и отвечаю на вопросы✔️Записи QA сессий будут доступны.
3. Также в начале курса можно выбрать себе один из проектов и делать его в процессе прохождения курса одному или в команде