TypeScript добавляет к JavaScript типы, которые проверяются при сборке и стираются в итоговом коде. Ошибки вида «undefined is not a function» ловятся до запуска, редактор подсказывает поля и методы, рефакторинг становится безопасным.
type Order = { id: number; status: "new" | "paid" | "shipped"; total?: number };
function label(o: Order): string {
switch (o.status) {
case "new": return "Новый";
case "paid": return "Оплачен";
case "shipped": return "Отправлен";
}
}
Что важно знать
- Структурная типизация: совместимость по форме, а не по имени типа.
- Объединения (
|), литеральные типы, сужение черезtypeof,in, проверку поля-дискриминатора. unknownвместоany: значение нужно проверить перед использованием.- Дженерики:
function first<T>(xs: T[]): T | undefined. - Утилиты:
Partial,Pick,Omit,Record,ReturnType. interfaceиtypeпочти взаимозаменяемы;interfaceрасширяется объявлением,typeумеет объединения и вычисляемые типы.strict: trueв tsconfig — обязательно.- Типы не проверяют данные в рантайме: ответ сервера валидируют (Zod, Valibot).