Так же, как и изучение джаваскрипта, изучение тайпскрипта возможно только с помощью решения задач. При этом полезно взять уже знакомые задачи, чтобы сконцентрироваться на типах. Изучение TypeScript можно разделить на 4 части.
I. Базовые типы и интерфейсы. На данном этапе необходимо научиться описывать типы переменных, функций и классов. Для этого подойдут задачи на работы с данными: массивы, объекты и ООП.
II. Дженерики в функциях. Проще всего понять необходимость дженериков можно реализуя некоторые методы массивов. Грубо говоря, дженерики нужны для описания функций, которые могут работать со значениями разных типов. Лучше всего для практики подходят задачи на ФП.
III. Дженерики в типах. Для изучения чуть более продвинутых тем (conditional types, infer, never, unknown, utility types) можно решать задачи из списка Type Challenges. В них необходимо создать какой-то Generic Type, исполняемый код там не подразумевается.
IV. Применение в React. Для тайпскрипта в реакте применимо все что выше, но дополнительно можно написать несколько дженерик компонент. Например, компонентов таблицы, которая умеет отображать массив произвольных объектов.