Список задач по 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
    Template Literal Types
  • 012who is online
    PartialRecord
  • 013total income
    Record
  • 014filter
    Generic
  • 015for each
    Genericvoid
  • 016sort
    Generic
  • 017map
    Multiple Generics
  • 018reduce
    OverloadingMultiple Generics
  • 019state
    Promise
  • 020group by equality
    Generic
  • 021zip
    Multiple Generics
  • 022where
    Partial
  • 023object group by
    IterableGeneric
  • 024map group by
    MapMultiple Generics
  • 025map group by advanced
    MapMultiple Genericsas unknown as
  • 026super power frequency
    MapMultiple Generics
  • 027once
    FunctionUnion Type
  • 028multi predicate
    GenericFunction
  • 029compose
    OverloadingMultiple Generics
  • 030memo
    MapBang!
  • 031spy
    Generic ExtendsType Indexing
  • 032polling
    Type Guard
  • 033promisify
    Overloading
  • 034cache
    Multiple GenericsMap
  • 035pipe
    Global Type
  • 036array map
    Global Type
  • 037extract key
    Multiple GenericsGeneric Extendskeyof
  • 038remove key
    keyofGeneric ExtendsOmit
  • 039keys projection
    keyofGeneric ExtendsOmit