TypeScript
Изучи TypeScript от и до. Типы, интерфейсы, generics, классы, модули, утилитарные и mapped-типы, declaration-файлы и компилятор.
18 уроков по порядку
- 120 мин
Привет, TypeScript
Вот небольшая программа на JavaScript, полностью сломанная, и JavaScript с удовольствием её выполнит:
What TypeScript isTsc compile stepRunning a .ts fileThe play button - 225 мин
Базовые типы (Type)
Запускать файл .ts вы уже умеете. Теперь познакомимся с базовыми строительными блоками: примитивными типами, которые есть в TypeScript, и двумя...
Primitive typesStringNumberBooleanNullUndefined+3 - 325 мин
Массивы и tuples
Одного значения редко бывает достаточно. У вас есть список температур, список имён, список цен. И в тот момент, когда появляется список, становится...
Array typesReadonly arraysTuple typesFixed-length tuplesNamed tuple elements - 425 мин
Object-типы (Type) и интерфейсы (Interface)
На примитивах и массивах можно уехать довольно далеко, но у большинства настоящих данных есть форма: у пользователя есть имя и возраст, у запроса,...
Object literal typesInterface keywordRequired vs optional propertiesStructural typingExcess property checks - 525 мин
Функции
Именно в функциях живёт большинство ошибок, и именно там типы окупаются лучше всего. Сигнатура функции (её параметры и тип возвращаемого значения)...
Parameter typesReturn typesVoid returnDefault parametersRest parametersFunction type expressions+1 - 625 мин
Union- и Literal-типы (Type)
Некоторые значения - это не что-то одно. Функция, ищущая пользователя, либо находит его, либо нет. Поле формы хранит либо число, введённое...
Union typesString literal typesNumeric literal typesLiteral narrowing with as constUnion of object shapes - 730 мин
Сужение типов (Type Narrowing)
Объединение типов (union) говорит: "это значение одного из нескольких типов". Сужение типа (narrowing) - это то, как компилятор вычисляет, какого...
Typeof narrowingTruthiness narrowingEquality narrowingIn operator narrowingInstanceof narrowingDiscriminated unions+1 - 820 мин
Type aliases vs interfaces
Вы писали формы объектов прямо внутри сигнатур, и это было нормально, пока формы были маленькие. А теперь вот сигнатура функции из настоящей кодовой...
Type aliasesInterface declarationsExtending interfacesIntersection typesDeclaration mergingWhen to pick which - 925 мин
Optional, readonly и nullable
Самая частая ошибка выполнения в JavaScript выглядит так:
Optional propertiesReadonly propertiesNon-null assertion operatorOptional chainingNullish coalescingStrictNullChecks - 1020 мин
Enums
Некоторые значения берутся из короткого фиксированного списка. Заказ бывает в ожидании, отправлен или доставлен. Строка журнала бывает debug, info,...
Numeric enumsString enumsConst enumsEnums vs string literal unionsReverse mapping caveats - 1130 мин
Generics
Нужна функция, которая берёт массив и возвращает его первый элемент. Проще некуда:
Generic functionsGeneric interfacesType parametersType inference for genericsBounded generics with extendsDefault type parameters - 1225 мин
Классы (Class)
Вот банковский счёт, записанный обычным объектом:
Class declarationsConstructorsInstance propertiesAccess modifiers (public, private, protected)Readonly fieldsParameter properties+1 - 1325 мин
Наследование и Abstract Classes
Вы написали три класса для платёжной системы: CardPayment, BankTransfer и Voucher. У всех трёх есть amount, currency и createdAt. У всех трёх есть...
Extends keywordSuper callsMethod overrideAbstract classesAbstract methodsImplements with interface - 1425 мин
Модули (Module)
Каждый файл на TypeScript сам по себе модуль. Как только в файле появляется import или export, имена верхнего уровня перестают быть глобальными и...
ES module syntaxNamed exportsDefault exportType-only importsRe-exportsModule resolution basics - 1530 мин
Utility Types
В поставку TypeScript входит небольшая библиотека обобщённых типов, которые принимают тип на вход и возвращают преобразованный тип на выход. Названия...
Partial<T>Required<T>Readonly<T>Pick<T, K>Omit<T, K>Record<K, V>+2 - 1630 мин
Mapped и conditional types
Вспомогательные типы, которыми вы только что пользовались (Partial, Pick, Record, ReturnType), собраны из двух возможностей языка: сопоставленных...
Keyof operatorMapped types syntaxKey remapping with asConditional typesInfer keywordDistributive conditional types - 1725 мин
Declaration-файлы и библиотеки
Вы устанавливаете библиотеку, импортируете её, и редактор оживает автодополнением, подсказками параметров и точной формой каждого возвращаемого...
.d.ts filesDefinitelyTyped (@types packages)Ambient declarationsDeclare moduleTypeRoots and types option - 1830 мин
tsconfig и компилятор (Compiler)
tsconfig.json - это файл, который компилятор TypeScript читает, чтобы понять, что компилировать и как это делать. Опций больше сотни, но реальный...
Tsconfig.jsonStrict modeTarget and libModule and moduleResolutionOutDir and rootDirIncremental and watch+1
Изучай TypeScript на своём языке
Каждый урок, тест и ответ наставника показывается на вашем языке. AI-наставник отвечает на том языке, на котором вы пишете.
Roles that use TypeScript
See how hiring teams interview engineers on TypeScript, in production-like environments.
Frontend Engineer (React, Angular, Vue)
Hire frontend engineers in real workspaces with Vite, real component libraries and real performance budgets. Live or take-home, fully recorded.
See the interviewFull Stack Developer
Hire full stack developers in real apps with real APIs, real UIs and real tests. Live or take-home, fully recorded.
See the interviewWeb Application Engineer
Hire web application engineers in real apps with real routes, real auth and real test suites. Live or take-home, fully recorded.
See the interview