Мы с вами уже прошли немалый путь, разобрались с базовыми типами, дженериками, интерфейсами и утилитами. Сегодня нас ждет одна из самых элегантных и мощных возможностей TypeScript, это Mapped Types (сопоставленные типы или типы через отображение). Если вы когда-либо мечтали динамически создавать новые типы на основе старых, избегая дублирования кода, то эта тема именно для вас. […]

Читать полностью

Сегодня нас ждет очень практичная тема, это индексные сигнатуры (Index Signatures). Мы уже с вами научились описывать объекты с известными полями, но что делать, когда мы заранее не знаем всех ключей? Именно для таких случаев и существует этот мощный инструмент. Давайте разбираться без лишней суеты, но очень основательно. Зачем нужны индексные сигнатуры? Представьте себе такую ситуацию: […]

Читать полностью

Сегодня нас ждет один из тех уроков, который отделяет любителя от профессионала. Мы будем разбираться с двумя мощнейшими операторами типов: keyof и typeof. Не пугайтесь, если названия звучат сложно. Я уверен, что к концу этого урока вы будете использовать их с легкостью и удивляться, как же раньше без них жили. Эти операторы не просто синтаксический сахар. Это […]

Читать полностью

Приветствую тебя на очередном, уже 21-м уроке нашего курса по TypeScript! Сегодня мы разберем одну из моих самых любимых и невероятно мощных возможностей TypeScript, это пользовательские type guards (защитники типов), а конкретнее, волшебный оператор is. Это тот инструмент, который отделяет простое использование TypeScript от профессионального владения им. Он позволяет нам не просто описывать типы, а активно […]

Читать полностью

Сегодня нас ждет один из самых важных и практичных уроков во всем курсе. Мы будем говорить о механизме, который лежит в самой основе того, как TypeScript понимает наш код и обеспечивает его безопасность. Речь пойдет о Сужении типов (Narrowing) и Защитниках типов (Type Guards). До этого мы часто сталкивались с ситуациями, когда у переменной могло быть несколько […]

Читать полностью

Сегодня у нас очень интересная тема. Мы уже познакомились с основами объединений (union) и пересечений (intersection) типов. Но сегодня мы выведем эти концепции на совершенно новый уровень, научившись создавать мощные и переиспользуемые конструкции с помощью псевдонимов типов (type aliases). До сих пор мы использовали union и intersection «на месте», прямо в аннотациях переменных или параметров […]

Читать полностью

В предыдущих уроках мы с вами разобрали, как сужать типы с помощью объединений (Union Types), когда переменная может быть одним типом из нескольких. Это инструмент для гибкости. Но что, если нам нужно совместить несколько типов одновременно, а не выбрать один? Для этой задачи в TypeScript существует не менее элегантный и мощный механизм, Пересечения типов (Intersection […]

Читать полностью

Сегодня нас ждет очень важная и одна из краеугольных тем в системе типов этого языка, это объединения (Union Types). Если до этого мы работали с переменными, которые могли быть только одного, строго предопределенного типа, то сегодня мы научимся создавать гибкие конструкции, которые могут принимать значения из двух или более типов. Это как если бы у […]

Читать полностью

Мы с вами уже проделали огромный путь, изучили базовые типы, функции, интерфейсы и дженерики. Мы стали увереннее в системе типов и компилятор стал нашим верным союзником, который подсказывает нам ошибки и помогает писать более надежный код. Но сегодня мы поговорим о ситуации, когда мы становимся главнее компилятора. Ситуации, когда мы говорим ему: «Спасибо, друг, я понимаю […]

Читать полностью

Сегодня нас ждет очень интересная и полезная тема, перечисления или Enums. Если вы когда-либо мечтали о том, чтобы ваши константы были не просто разрозненными числами или строками, а были объединены в логическую, удобную для чтения и поддержки структуру, то этот урок именно для вас. Enums это один из тех инструментов, который по-настоящему показывает мощь TypeScript поверх JavaScript, […]

Читать полностью