Список задач по TypeScript

Как изучать TypeScript

Так же, как и изучение джаваскрипта, изучение тайпскрипта возможно только с помощью решения задач. При этом полезно взять уже знакомые задачи, чтобы сконцентрироваться на типах. Изучение TypeScript можно разделить на 4 части.

I. Базовые типы и интерфейсы. На данном этапе необходимо научиться описывать типы переменных, функций и классов. Для этого подойдут задачи на работы с данными: массивы, объекты и ООП.

II. Дженерики в функциях. Проще всего понять необходимость дженериков можно реализуя некоторые методы массивов. Грубо говоря, дженерики нужны для описания функций, которые могут работать со значениями разных типов. Лучше всего для практики подходят задачи на ФП.

III. Дженерики в типах. Для изучения чуть более продвинутых тем (conditional types, infer, never, unknown, utility types) можно решать задачи из списка Type Challenges. В них необходимо создать какой-то Generic Type, исполняемый код там не подразумевается.

IV. Применение в React. Для тайпскрипта в реакте применимо все что выше, но дополнительно можно написать несколько дженерик компонент. Например, компонент таблицы, которая умеет отображать массив произвольных объектов.

Как решать задачи

  • 001greet developers
    Interface Extends
  • 002sort by freq
    Record
  • 003top methods
  • 004teams ranking
  • 005tree sum
  • 006id to parent
  • 007http router
    Union Type
  • 008query params
  • 009find integer
    Function
  • 010file system
    Function
  • 011hex to rgb
  • 012who is online
    PartialRecord
  • 013total income
    Record
  • 014like dislike
    GenericUnion Type
  • 015filter
    Generic
  • 016for each
    Genericvoid
  • 017sort
    Generic
  • 018map
    Multiple Generics
  • 019reduce
    OverloadingMultiple Generics
  • 020state
    Promise
  • 021group by equality
    Generic
  • 022zip
    Multiple Generics
  • 023where
    Partial
  • 024object group by
    IterableGeneric
  • 025map group by
    MapMultiple Generics
  • 026map group by advanced
    MapMultiple Generics
  • 027super power frequency
    MapMultiple Genericsas unknown as
  • 028once
    FunctionUnion Type
  • 029multi predicate
    GenericFunction
  • 030compose
    OverloadingMultiple Generics
  • 031memo
    MapBang!
  • 032spy
    Generic ExtendsType Indexing
  • 033polling
    Type Guard
  • 034promisify
    Overloading
  • 035cache
    Multiple GenericsMap
  • 036pipe
    Global Type
  • 037array from
    Generic
  • 038array map
    Global Type
  • 039extract key
    Multiple GenericsGeneric Extendskeyof
  • 040remove key
    keyofGeneric ExtendsOmit
  • 041keys projection
    keyofGeneric ExtendsOmit