Курс на Stepik
Обложка курса «TypeScript: 190 задач на систему типов» на Stepik
Бесплатно

TypeScript: 190 задач на систему типов ★ 0.000

Открыть на
STEPIK.ORG

190 задач на систему типов TypeScript: от Pick и Readonly до infer, рекурсии и шаблонных строк. Практикуйтесь в создании собственных типов, учитесь читать сложные объявления и проверять свои решения. Для тех, кто уже знает основы TypeScript.

Показатель Текущие показатели Рост
Значение 🏆 Рейтинг 3 дн 7 дн 30 дн
Количество учеников на курсе «TypeScript: 190 задач на систему типов»Учеников на курсе 50
Сертификаты, выданные на курсе «TypeScript: 190 задач на систему типов»Сертификатов выдано 0
Отзывы о курсе «TypeScript: 190 задач на систему типов»Отзывов получено 0
Рейтинг курса «TypeScript: 190 задач на систему типов»Рейтинг курса 0.000
Уроки в курсе «TypeScript: 190 задач на систему типов»Количество уроков 203
Задачи с кодом в курсе «TypeScript: 190 задач на систему типов»Количество задач с кодом 188
Время прохождения курса «TypeScript: 190 задач на систему типов»Время прохождения курса —
Обновления курса «TypeScript: 190 задач на систему типов»Обновления курса — —
Дата публикации курса «TypeScript: 190 задач на систему типов»Дата публикации курса — ———
Последнее обновление курса «TypeScript: 190 задач на систему типов»Последнее обновление — ———
Сложность normal — ———

Содержание курса

Разделы в курсе «TypeScript: 190 задач на систему типов» 15 разделов Уроки в курсе «TypeScript: 190 задач на систему типов» 203 урока Задачи в курсе «TypeScript: 190 задач на систему типов» 188 задач Время прохождения курса «TypeScript: 190 задач на систему типов» 0 ч. Последнее обновление курса «TypeScript: 190 задач на систему типов» обн. 15 сентября 2026

Введение

1 урок
1. Введение ↗

Задачи

188 уроков
1. Привет, мир ↗
2. Получение типа возвращаемого значения ↗
3. Исключение свойств (Omit) ↗
4. Выбор свойств (Pick) ↗
5. Получение ключей свойств только для чтения ↗
6. Упрощенный Vue ↗
7. Только для чтения (Readonly) ↗
8. Только для чтения 2 (Readonly 2) ↗
9. Только для чтения на всех уровнях (Deep Readonly) ↗
10. Из кортежа в объединение типов ↗
11. Из кортежа в объект ↗
12. Настройка через цепочку вызовов ↗
13. Первый элемент массива ↗
14. Последний элемент массива ↗
15. Удаление последнего элемента (Pop) ↗
16. Каррирование 1 ↗
17. Длина кортежа ↗
18. Promise.all ↗
19. Исключение типов (Exclude) ↗
20. Объединение в пересечение ↗
21. Получение обязательных свойств ↗
22. Получение необязательных свойств ↗
23. Поиск типа ↗
24. Ключи обязательных свойств ↗
25. Ключи необязательных свойств ↗
26. Удаление пробельных символов слева (Trim Left) ↗
27. Удаление пробельных символов по краям (Trim) ↗
28. Первая буква в верхнем регистре (Capitalize) ↗
29. Первые буквы слов в верхнем регистре (Capitalize Words) ↗
30. Верблюжий регистр (CamelCase) ↗
31. Замена (Replace) ↗
32. Замена всех вхождений (ReplaceAll) ↗
33. Разбор строки формата printf в C ↗
34. Разбор строки запроса ↗
35. Тип результата Promise (Awaited) ↗
36. Добавление аргумента ↗
37. Базовые входные свойства Vue ↗
38. Срез (Slice) ↗
39. Проверка типа any (IsAny) ↗
40. Если (If) ↗
41. Типизированный Get ↗
42. Сравнение целых чисел ↗
43. Перестановки ↗
44. Длина строки ↗
45. Из строки в число ↗
46. Фильтрация кортежа ↗
47. Раскрытие вложенных массивов (Flatten) ↗
48. Каррирование 2 ↗
49. Из кортежа в объект-перечисление ↗
50. Сумма ↗
51. Умножение ↗
52. Добавление поля в объект ↗
53. Модуль числа (Absolute) ↗
54. Из строки в объединение ↗
55. Объединение массивов (Concat) ↗
56. printf ↗
57. Уникальность объекта на всех уровнях вложенности ↗
58. Слияние ↗
59. Преобразование в kebab-case (KebabCase) ↗
60. Разность объектов (Diff) ↗
61. Длина строки 2 ↗
62. Метки (Tag) ↗
63. Из объединения в кортеж ↗
64. Диапазон с включенными границами ↗
65. Сортировка ↗
66. Соединение строк ↗
67. Раскрытие объединений (DistributeUnions) ↗
68. Проверка наличия элемента (Includes) ↗
69. Хотя бы один (AnyOf) ↗
70. Выбор вложенных свойств (DeepPick) ↗
71. Проверка на never (IsNever) ↗
72. Проверка на объединение (IsUnion) ↗
73. Замена типов свойств (ReplaceKeys) ↗
74. Pinia ↗
75. Удаление индексной сигнатуры ↗
76. Преобразование ключей в camelCase (Camelize) ↗
77. Разбор процентной строки ↗
78. Удаление символов из строки (Drop String) ↗
79. Удаление символа (Drop Char) ↗
80. Минус один (MinusOne) ↗
81. Выбор свойств по типу (PickByType) ↗
82. Начинается с (StartsWith) ↗
83. Заканчивается на (EndsWith) ↗
84. Необязательные свойства по ключам (PartialByKeys) ↗
85. Обязательные свойства по ключам (RequiredByKeys) ↗
86. Изменяемый тип (Mutable) ↗
87. Разбиение строки (Split) ↗
88. Ключи открытых членов класса (ClassPublicKeys) ↗
89. Исключение свойств по типу (OmitByType) ↗
90. Проверка обязательности ключей (IsRequiredKey) ↗
91. Пары ключей и значений объекта (ObjectEntries) ↗
92. Объект из пар ключей и значений (ObjectFromEntries) ↗
93. Добавление в конец (Push) ↗
94. Добавление в начало (Unshift) ↗
95. Удаление первого элемента (Shift) ↗
96. Кортеж во вложенный объект (Tuple to Nested Object) ↗
97. Обратный порядок (Reverse) ↗
98. Обратный порядок аргументов (Flip Arguments) ↗
99. Раскрытие вложенных массивов до заданной глубины (FlattenDepth) ↗
100. Параметры (Parameters) ↗
101. Строка в стиле BEM ↗
102. Симметричный обход дерева (InorderTraversal) ↗
103. Проверка на палиндром (IsPalindrome) ↗
104. Перестановка ключей и значений (Flip) ↗
105. Последовательность Фибоначчи ↗
106. Все комбинации (AllCombinations) ↗
107. Больше, чем (Greater Than) ↗
108. Объединение в пары (Zip) ↗
109. Проверка на кортеж (IsTuple) ↗
110. Разбиение на части (Chunk) ↗
111. Заполнение (Fill) ↗
112. Удаление пробельных символов справа (Trim Right) ↗
113. Исключение элементов (Without) ↗
114. Усечение (Trunc) ↗
115. IndexOf ↗
116. Ключи изменяемых свойств (Mutable Keys) ↗
117. Соединение (Join) ↗
118. Индекс последнего вхождения (LastIndexOf) ↗
119. Уникальные элементы (Unique) ↗
120. Пересечение (Intersection) ↗
121. Преобразование типов (MapTypes) ↗
122. Из двоичной системы в десятичную (Binary to Decimal) ↗
123. JSON-парсер (JSON Parser) ↗
124. Пути к свойствам объекта (Object Key Paths) ↗
125. Создание кортежа (Construct Tuple) ↗
126. Вычитание (Subtract) ↗
127. Диапазон чисел (Number Range) ↗
128. Комбинации (Combination) ↗
129. Сумма двух чисел (Two Sum) ↗
130. Подпоследовательность (Subsequence) ↗
131. Проверка повторяющихся символов (CheckRepeatedChars) ↗
132. Проверка даты (ValidDate) ↗
133. Копирование свойств (Assign) ↗
134. Индекс первого неповторяющегося символа (FirstUniqueCharIndex) ↗
135. Максимум (Maximum) ↗
136. Разбор параметров URL (Parse URL Params) ↗
137. Заглавные буквы в ключах вложенных объектов ↗
138. Получение средних элементов (GetMiddleElement) ↗
139. Элементы, встречающиеся ровно один раз ↗
140. Подсчет количества вхождений элементов массива ↗
141. Целое число (Integer) ↗
142. Замена типов в объединении ↗
143. FizzBuzz ↗
144. Кодирование длин серий ↗
145. Путь в дереве в виде массива ↗
146. Преобразование литеральных типов в примитивные (ToPrimitive) ↗
147. Рекурсивно изменяемый тип (DeepMutable) ↗
148. Все элементы равны (All) ↗
149. Фильтрация (Filter) ↗
150. Преобразование в snake_case (SnakeCase) ↗
151. Равенство типов (IsEqual) ↗
152. Поиск всех вхождений (FindAll) ↗
153. Тип сочетаний клавиш (Combination key type) ↗
154. Перестановки элементов кортежа (Permutations of Tuple) ↗
155. Замена первого вхождения (Replace First) ↗
156. Транспонирование (Transpose) ↗
157. Проверка отрицательного числа (IsNegativeNumber) ↗
158. Из JSON Schema в TypeScript ↗
159. Квадрат числа (Square) ↗
160. Треугольное число ↗
161. 162. Декартово произведение (CartesianProduct) ↗
162. 163. Объединение всех типов (MergeAll) ↗
163. Проверка повторений в кортеже (CheckRepeatedTuple) ↗
164. Необязательные свойства с undefined (OptionalUndefined) ↗
165. Публичный тип (Public Type) ↗
166. Извлечение свойств вложенного объекта (ExtractToObject) ↗
167. Исключение вложенных свойств (Deep Omit) ↗
168. Уникальные элементы (Unique Items) ↗
169. Проверка на нечетность (IsOdd) ↗
170. Ханойская башня ↗
171. Побитовое исключающее ИЛИ (BitwiseXOR) ↗
172. Треугольник Паскаля ↗
173. Фиксированный строковый литеральный тип ↗
174. Подсчет инверсий (CountReversePairs) ↗
175. Судоку ↗
176. Пересечение параметров ↗
177. Распаковка типов (Unbox) ↗
178. Сложение двоичных чисел ↗
179. Динамический маршрут ↗
180. Объект из объединения по ключу ↗
181. Сравнение длин массивов ↗
182. Получение элементов ↗
183. Частичный Record с определенными значениями ↗
184. Самый длинный общий префикс ↗
185. След матрицы ↗
186. Проверка на букву алфавита ↗
187. Проверка судоку ↗
188. Собственный Uppercase ↗

Ключи объектов и mapped types

6 уроков
1. Преобразование объектных типов ↗
2. Выбор свойств (Pick) ↗
3. Только для чтения (Readonly) ↗
4. Из кортежа в объект ↗
5. Изменяемый тип (Mutable) ↗
6. Ключи открытых членов класса (ClassPublicKeys) ↗

Объединения, условные типы и infer

8 уроков
1. Ветвление и множества типов ↗
2. Объединение в пересечение ↗
3. Поиск типа ↗
4. Тип результата Promise (Awaited) ↗
5. Проверка типа any (IsAny) ↗
6. Проверка на never (IsNever) ↗
7. Проверка на объединение (IsUnion) ↗
8. Равенство типов (IsEqual) ↗

Функции, аргументы и this

9 уроков
1. Анализ и преобразование сигнатур ↗
2. Получение типа возвращаемого значения ↗
3. Упрощенный Vue ↗
4. Каррирование 1 ↗
5. Добавление аргумента ↗
6. Базовые входные свойства Vue ↗
7. Каррирование 2 ↗
8. Pinia ↗
9. Обратный порядок аргументов (Flip Arguments) ↗

Кортежи и вариативные элементы

12 уроков
1. Разбор и сборка кортежей ↗
2. Из кортежа в объединение типов ↗
3. Последний элемент массива ↗
4. Удаление последнего элемента (Pop) ↗
5. Promise.all ↗
6. Метки (Tag) ↗
7. Удаление первого элемента (Shift) ↗
8. Проверка на кортеж (IsTuple) ↗
9. 162. Декартово произведение (CartesianProduct) ↗
10. Уникальные элементы (Unique Items) ↗
11. След матрицы ↗
12. Проверка судоку ↗

Рекурсивные кортежи и массивы

27 уроков
1. Структурная рекурсия над коллекциями ↗
2. Перестановки ↗
3. Раскрытие вложенных массивов (Flatten) ↗
4. Проверка наличия элемента (Includes) ↗
5. Хотя бы один (AnyOf) ↗
6. Обратный порядок (Reverse) ↗
7. Раскрытие вложенных массивов до заданной глубины (FlattenDepth) ↗
8. Симметричный обход дерева (InorderTraversal) ↗
9. Объединение в пары (Zip) ↗
10. Разбиение на части (Chunk) ↗
11. Заполнение (Fill) ↗
12. Исключение элементов (Without) ↗
13. IndexOf ↗
14. Индекс последнего вхождения (LastIndexOf) ↗
15. Уникальные элементы (Unique) ↗
16. Создание кортежа (Construct Tuple) ↗
17. Подпоследовательность (Subsequence) ↗
18. Получение средних элементов (GetMiddleElement) ↗
19. Элементы, встречающиеся ровно один раз ↗
20. Преобразование литеральных типов в примитивные (ToPrimitive) ↗
21. Все элементы равны (All) ↗
22. Фильтрация (Filter) ↗
23. Перестановки элементов кортежа (Permutations of Tuple) ↗
24. Замена первого вхождения (Replace First) ↗
25. Проверка повторений в кортеже (CheckRepeatedTuple) ↗
26. Ханойская башня ↗
27. Сравнение длин массивов ↗

Комбинаторика и сложные коллекции

13 уроков
1. Комбинаторика на уровне типов ↗
2. Срез (Slice) ↗
3. Фильтрация кортежа ↗
4. Из объединения в кортеж ↗
5. Диапазон с включенными границами ↗
6. Сортировка ↗
7. Раскрытие объединений (DistributeUnions) ↗
8. Пересечение (Intersection) ↗
9. Замена типов в объединении ↗
10. Судоку ↗
11. Пересечение параметров ↗
12. Распаковка типов (Unbox) ↗
13. Получение элементов ↗

Шаблонные строковые типы

10 уроков
1. Строковые литералы как шаблоны ↗
2. Первая буква в верхнем регистре (Capitalize) ↗
3. Замена (Replace) ↗
4. Начинается с (StartsWith) ↗
5. Заканчивается на (EndsWith) ↗
6. Строка в стиле BEM ↗
7. Усечение (Trunc) ↗
8. Проверка даты (ValidDate) ↗
9. Фиксированный строковый литеральный тип ↗
10. Проверка на букву алфавита ↗

Рекурсивные преобразования строк

17 уроков
1. Посимвольный разбор строк ↗
2. Удаление пробельных символов слева (Trim Left) ↗
3. Удаление пробельных символов по краям (Trim) ↗
4. Замена всех вхождений (ReplaceAll) ↗
5. Длина строки ↗
6. Из строки в объединение ↗
7. Преобразование в kebab-case (KebabCase) ↗
8. Удаление символа (Drop Char) ↗
9. Все комбинации (AllCombinations) ↗
10. Удаление пробельных символов справа (Trim Right) ↗
11. Соединение (Join) ↗
12. Комбинации (Combination) ↗
13. Проверка повторяющихся символов (CheckRepeatedChars) ↗
14. Индекс первого неповторяющегося символа (FirstUniqueCharIndex) ↗
15. Поиск всех вхождений (FindAll) ↗
16. Самый длинный общий префикс ↗
17. Собственный Uppercase ↗

Продвинутые строковые алгоритмы

14 уроков
1. Составные строковые преобразования ↗
2. Первые буквы слов в верхнем регистре (Capitalize Words) ↗
3. Верблюжий регистр (CamelCase) ↗
4. Типизированный Get ↗
5. Длина строки 2 ↗
6. Соединение строк ↗
7. Преобразование ключей в camelCase (Camelize) ↗
8. Удаление символов из строки (Drop String) ↗
9. Разбиение строки (Split) ↗
10. Проверка на палиндром (IsPalindrome) ↗
11. Кодирование длин серий ↗
12. Преобразование в snake_case (SnakeCase) ↗
13. Побитовое исключающее ИЛИ (BitwiseXOR) ↗
14. Динамический маршрут ↗

Вычисления на уровне типов

23 урока
1. Числа и арифметика без выполнения кода ↗
2. Сравнение целых чисел ↗
3. Из строки в число ↗
4. Сумма ↗
5. Умножение ↗
6. Модуль числа (Absolute) ↗
7. Минус один (MinusOne) ↗
8. Последовательность Фибоначчи ↗
9. Больше, чем (Greater Than) ↗
10. Из двоичной системы в десятичную (Binary to Decimal) ↗
11. Вычитание (Subtract) ↗
12. Диапазон чисел (Number Range) ↗
13. Сумма двух чисел (Two Sum) ↗
14. Максимум (Maximum) ↗
15. Целое число (Integer) ↗
16. FizzBuzz ↗
17. Проверка отрицательного числа (IsNegativeNumber) ↗
18. Квадрат числа (Square) ↗
19. Треугольное число ↗
20. Проверка на нечетность (IsOdd) ↗
21. Треугольник Паскаля ↗
22. Подсчет инверсий (CountReversePairs) ↗
23. Сложение двоичных чисел ↗

Продвинутые преобразования объектов

27 уроков
1. Фильтрация и композиция свойств ↗
2. Исключение свойств (Omit) ↗
3. Только для чтения 2 (Readonly 2) ↗
4. Получение обязательных свойств ↗
5. Получение необязательных свойств ↗
6. Ключи обязательных свойств ↗
7. Ключи необязательных свойств ↗
8. Из кортежа в объект-перечисление ↗
9. Добавление поля в объект ↗
10. Слияние ↗
11. Разность объектов (Diff) ↗
12. Замена типов свойств (ReplaceKeys) ↗
13. Удаление индексной сигнатуры ↗
14. Выбор свойств по типу (PickByType) ↗
15. Необязательные свойства по ключам (PartialByKeys) ↗
16. Обязательные свойства по ключам (RequiredByKeys) ↗
17. Исключение свойств по типу (OmitByType) ↗
18. Проверка обязательности ключей (IsRequiredKey) ↗
19. Пары ключей и значений объекта (ObjectEntries) ↗
20. Объект из пар ключей и значений (ObjectFromEntries) ↗
21. Перестановка ключей и значений (Flip) ↗
22. Ключи изменяемых свойств (Mutable Keys) ↗
23. Преобразование типов (MapTypes) ↗
24. Необязательные свойства с undefined (OptionalUndefined) ↗
25. Публичный тип (Public Type) ↗
26. Извлечение свойств вложенного объекта (ExtractToObject) ↗
27. Объект из объединения по ключу ↗

Рекурсивные объекты и структурные типы

19 уроков
1. Глубокие преобразования и пути ↗
2. Получение ключей свойств только для чтения ↗
3. Только для чтения на всех уровнях (Deep Readonly) ↗
4. Настройка через цепочку вызовов ↗
5. Уникальность объекта на всех уровнях вложенности ↗
6. Выбор вложенных свойств (DeepPick) ↗
7. Кортеж во вложенный объект (Tuple to Nested Object) ↗
8. Пути к свойствам объекта (Object Key Paths) ↗
9. Копирование свойств (Assign) ↗
10. Заглавные буквы в ключах вложенных объектов ↗
11. Подсчет количества вхождений элементов массива ↗
12. Путь в дереве в виде массива ↗
13. Рекурсивно изменяемый тип (DeepMutable) ↗
14. Тип сочетаний клавиш (Combination key type) ↗
15. Транспонирование (Transpose) ↗
16. Из JSON Schema в TypeScript ↗
17. 163. Объединение всех типов (MergeAll) ↗
18. Исключение вложенных свойств (Deep Omit) ↗
19. Частичный Record с определенными значениями ↗

Парсеры и комплексные задачи

7 уроков
1. Архитектура парсера на уровне типов ↗
2. Разбор строки формата printf в C ↗
3. Разбор строки запроса ↗
4. printf ↗
5. Разбор процентной строки ↗
6. JSON-парсер (JSON Parser) ↗
7. Разбор параметров URL (Parse URL Params) ↗