TypeScript vs JavaScript в 2026: почему TS обогнал JS и что это значит для разработчиков
- четверг, 11 июня 2026 г. в 00:00:16
В августе 2025 года TypeScript впервые возглавил рейтинг GitHub по числу активных контрибьюторов, обойдя Python и JavaScript. Изменился подход к написанию кода: типы стали машиночитаемыми контрактами, фреймворки сделали TS вариантом по умолчанию, а ИИ-инструменты используют типы как ограничения. Разбираемся, какие цифры подтверждают тренд, где он создаёт издержки и как выбирать стек в 2026 году с учётом изменений рынка.

Тимлид в ООО «Ярус». Помог с подготовкой статьи.
В октябре 2025 года GitHub выпустил отчёт Octoverse, главный вывод которого: TypeScript стал самым используемым языком на платформе по числу уникальных контрибьюторов. GitHub назвал это наиболее значимым сдвигом в языковой экосистеме за более чем десять лет.
Команды больше не спрашивают «TS или JS?». Они пишут на TypeScript ради безопасности, рефакторинга и ИИ-ассистентов, а на выходе получают JavaScript, который исполняется в браузере или в Node.js.
Цифры роста TypeScript часто цитируют как доказательство абсолютной победы. Но чтобы делать выводы, важно понимать, что измеряет каждая метрика и где её пределы.
Язык | Месячные контрибьюторы | Изменение с августа 2024 года по август 2025 года* |
TypeScript | 2 636 006 | +66,6% (+1,05 млн) |
Python | 2 594 000 | +48,8% (+850 тыс.) |
JavaScript | 2 150 000 | +24,8% (+427 тыс.) |
*Источник: GitHub Octoverse 2025
Разрыв между TypeScript и Python составил всего около 42 тыс. контрибьюторов. Python несколько лет удерживал первое место, поэтому обгон стал символическим рубежом. Важно понимать: метрика считает активных авторов на GitHub, а не общее количество разработчиков в индустрии. Тем не менее такой скачок показывает, где сосредоточен новый код: в профессиональных репозиториях, фреймворках и корпоративных монорепах.
State of JavaScript 2025: около 40% разработчиков пишут исключительно на TypeScript (рост с 28% в 2022). Только 6% используют исключительно чистый JS.
Stack Overflow Developer Survey 2025: JavaScript используют около 66% всех респондентов, TypeScript — около 44% (среди профессиональных разработчиков — 48,8%).
Данные показывают: JS остаётся шире по охвату, TS всё чаще выбирают для написания кода внутри JS-экосистемы. TypeScript не заменяет JavaScript — он накладывается на него как инструментальный слой.
Пакет typescript на npm стабильно получает более 50 млн загрузок в неделю. По данным отчётов об экосистемной зрелости (включая анализ Are the types wrong? и метрик DefinitelyTyped), более 85% популярных библиотек либо поставляют собственные декларации типов, либо поддерживаются через @types. Так формируется сетевой эффект: чем больше типизированных зависимостей, тем ниже порог входа для новых проектов на TS.
Примечание по метрикам: еженедельные загрузки пакета typescript на npm (>50 млн) могут включать как проекты, написанные на TypeScript, так и JavaScript-проекты, использующие типизированные зависимости. Кроме того, старые библиотеки с добавленными @types учитываются в статистике наравне с новыми нативными TS-пакетами. Это не отменяет тренда, но важно учитывать при интерпретации чистоты метрики.
Инженеры выбирают TS ради инструментальной предсказуемости в командной и ИИ-разработке.
Успех TypeScript — результат сочетания трёх инженерных и рыночных факторов. Разберём каждый с техническими примерами.
В крупных проектах главное — не написать код, а безопасно его менять. Статическая типизация превращает интерфейсы функций и моделей данных в машиночитаемые контракты — понятные и человеку, и инструментам. Когда разработчик меняет сигнатуру метода, компилятор мгновенно подсвечивает все места вызова.
Пример с дискриминантными объединениями (discriminated unions) — одним из самых мощных паттернов в TS:
type PaymentMethod = | { type: 'card'; last4: string; brand: 'visa' | 'mastercard' } | { type: 'bank'; iban: string }; function maskPayment(p: PaymentMethod): string { if (p.type === 'card') { return `**** **** **** ${p.last4}`; // p.last4 доступен только здесь } return p.iban.replace(/[A-Z0-9]/g, '*'); // p.iban доступен только здесь }
Если позже вы добавите { type: 'crypto'; wallet: string }, компилятор укажет на каждый if/switch, который не обработал новый кейс. В чистом JS такие регрессии чаще обнаруживаются на этапах тестирования, код-ревью или уже в продакшене.
Для бэкенд-разработки на Node.js фреймворк NestJS (более 75 тыс. звёзд на GitHub) стал де-факто стандартом — и он построен на декораторах TypeScript:
// Одна строка в TS: декларативно и читаемо @Controller('users') @UseGuards(AuthGuard) export class UsersController { @Get(':id') findOne(@Param('id') id: string) { ... } }
В чистом JavaScript эквивалентная функциональность требует сложного прокси и наследования или ручного применения метапрограммирования — код становится в 3–5 раз объёмнее и менее читаемым. Для некоторых паттернов — внедрение зависимостей (DI), AOP (аспектно-ориентированное программирование), метапрограммирование — TypeScript перестаёт быть «опцией» и становится необходимым инструментом.
В посте инженерного блога Slack 2017 года команда отметила, что недооценила силу интеграции с редактором: TypeScript понимает, какие свойства и методы доступны у объекта, и передаёт это знание автодополнению — после такого опыта работа без типов «ощущается варварством».
Разработчики редко выбирают язык абстрактно. Они выбирают фреймворк, а вместе с ним — инструментальный стек:
Angular с 2016 года полностью написан на TypeScript. Это был первый мейнстрим-фреймворк, сделавший выбор за разработчика.
Next.js по умолчанию генерирует TS-проект, и большая часть новых React-проектов используют TypeScript.
Vue 3 переписан на TS, Composition API спроектирован с учётом вывода типов (type inference).
SvelteKit, Nuxt, Astro, Remix используют TS в scaffolding (генерации стартового кода).
Это создаёт «липкий» эффект: как только проект стартует типизированным, все последующие модули, зависимости и CI-шаги тяготеют к тому же стандарту.
С 2023 года ИИ-генерация кода стала повседневностью. По данным академического исследования 2025 года, процитированного в GitHub Octoverse, лишь около 6% ошибок компиляции в TypeScript-коде, сгенерированном LLM, — синтаксические. Подавляющая часть остальных ошибок связана с нарушением контрактов системы типов.
Типизация не делает ИИ «умнее», но даёт ему явные спецификации:
// Без типов: ИИ может угадать структуру, но ошибётся в полях function processUser(data) { ... } // С типами: ИИ видит точный контракт и генерирует соответствующий код interface UserInput { email: string; role: 'admin' | 'editor'; } function processUser(input: UserInput): Promise<UserProfile> { ... }
Связь работает в обе стороны: команды, уже использующие TS, охотнее внедряют Copilot или ChatGPT, потому что типизированная база снижает операционные риски автогенерации. Обратное тоже верно: ИИ-инструменты лучше работают там, где есть чёткие интерфейсы, что подталкивает новые команды к TS.
Интеграция TypeScript в проект всегда имеет цену — техническую и организационную. Даже в успешных кейсах есть скрытые издержки, но если знать сложные места заранее, можно лучше подготовиться к переходу.
Airbnb. В докладе Adopting TypeScript at Scale на JSConf Hawaii 2019 Бри Бундж озвучила цифру о предотвращении 38% багов в продакшене за счёт типизации (по результатам постмортема). Инструмент ts-migrate был открыт в августе 2020 года. Он позволяет конвертировать десятки тысяч строк кода за один проход, но генерирует много any и @ts-ignore. Польза приходит не от «просто компиляции», а от последующей «расплаты» — постепенного ужесточения правил.
Stripe. В марте 2022 Stripe мигрировал кодовую базу Stripe Dashboard (3,7 млн строк) с Flow на TypeScript за один пул-реквест. Команда внедрила политику «весь новый код — только TS», что потребовало большой перестройки CI и обучения инженеров.
Bloomberg. Более 100 млн строк кода и 2 тыс. инженеров, пишущих на JavaScript. После запуска опциональной поддержки TS в первый же год более 200 проектов подключились самостоятельно, и ни один не вернулся на чистый JS.
Это идеальный сценарий: компания с выделенным бюджетом, инфраструктурными командами и стратегическим приоритетом качества. На практике большинство коммерческих проектов сталкивается с ограничениями: нехватка квалифицированных специалистов, давление сроков, отсутствие бюджета на инвестиции с отложенной окупаемостью. Для средних проектов миграция возможна от квартала до полугода при наличии компетенций; для крупных легаси-систем чаще выбирается стратегия параллельной разработки новой версии или постепенной заморозки старой кодовой базы.
Накладные расходы на конфигурацию: tsconfig.json, стратегии разрешения модулей, strict-флаги, совместимость со сборщиками (bundlers) — всё это требует опыта. Ошибки в конфигурации часто маскируются под «баги компилятора».
Долг слабых типов: автоматическая миграция без последующей чистки создаёт иллюзию безопасности. Код компилируется, но any и отключённые проверки сводят пользу типизации к нулю.
Выполнение и компиляция: типы исчезают после сборки. На границах системы (API, пользовательский ввод, данные из БД) всё равно нужны библиотеки вроде Zod или io-ts. TS не заменяет валидацию в рантайме:
// TypeScript проверит на этапе компиляции, но в рантайме всё равно нужна валидация import { z } from 'zod'; const UserSchema = z.object({ email: z.string().email(), age: z.number().min(18) }); // Безопасное получение данных из ненадёжного источника const parsed = UserSchema.safeParse(apiResponse); if (!parsed.success) throw new Error('Invalid user data');
Дэвид Хайнемайер Хэнссон, создатель Ruby on Rails, в сентябре 2023 года удалил TypeScript из фреймворка Turbo 8 и написал: «Я никогда не был фанатом. Ни после пяти минут — ни после пяти лет». Удаление TS из проекта вызвало резкую реакцию сообщества: топ-комментарий с 355 положительными реакциями против 8 отрицательных показал, что для большинства библиотек типизация — это снижение порога входа для контрибьюторов.
Рич Харрис, создатель фронтенд-фреймворка Svelte, перевёл ядро с .ts на JSDoc, сохранив проверку типов. «Типы великолепны, но TypeScript иногда усложняет процесс. Как только вы используете .ts-файл, вам нужен тулчейн для его поддержки». Разница важна: для библиотек лишний шаг сборки — это реальная проблема, для приложений — почти неизбежность.
Миграция на TypeScript — это инженерный проект: он требует времени, настройки CI, обучения команды и дисциплины в поддержке типов. Без этого типизация превращается в бюрократический слой, который замедляет разработку и не защищает от багов.
Часто звучит мнение: «TS-разработчики получают больше». Это верно лишь отчасти. Разница в оплате отражает не стоимость синтаксиса, а сложность проектов, где этот синтаксис применяется.
Специализация | Медианная зарплата* | Контекст выборки |
TypeScript-разработчик | 206 000 ₽ | Чаще встречается в продуктовых компаниях, enterprise-фронтенде, фулстеке, командах от трёх человек |
JavaScript-разработчик | 156 000 ₽ | Включает джунов, фриланс, небольшие студии, легаси-поддержку, Node.js-скрипты, бэкенд без строгих контрактов |
*Источник: калькулятор зарплат Хабр Карьеры на июнь 2026 года. Данные могут варьироваться в зависимости от региона, опыта и типа компании
JavaScript-разработчики получают примерно на 24% меньше, и это коррелирует с тем, что вакансии с TS чаще подразумевают работу в командах от трёх человек, над кодовыми базами больше 10 тыс. строк, со строгими процессами ревью и CI. Это изначально проекты с более высоким бюджетом, а не «премия за знание типов».
Прямых сравнимых метрик «зарплата по языку» в едином глобальном отчёте нет — данные фрагментированы по платформам и методологиям. Однако несколько источников позволяют составить картину:
Stack Overflow Developer Survey 2025 публикует данные по зарплатам с возможностью фильтрации по технологиям. При самостоятельной выборке разработчиков, указавших TypeScript как основной инструмент, медианные значения в Северной Америке и Западной Европе устойчиво выше, чем у респондентов, работающих преимущественно с чистым JavaScript. Конкретные цифры зависят от грейда, домена и региона, но тренд сохраняется.
Агрегаторы вакансий Indeed, Levels.fyi, Glassdoor фиксируют, что позиции с обязательным указанием TypeScript чаще встречаются в enterprise-секторе, финтехе и продуктовых компаниях — там, где бюджеты на разработку и уровни компенсаций традиционно выше.
Важный нюанс: наблюдаемая корреляция не означает причинно-следственную связь «выучил типы → получил больше денег». Разница в оплате отражает в первую очередь:
Масштаб проекта: TS чаще требуется в кодовых базах >10 тыс. строк, где выше требования к надёжности.
Зрелость процессов: компании со строгим CI/CD, код-ревью и тестированием чаще внедряют TS — и чаще платят выше рынка.
Домен: финтех, SaaS, enterprise-решения исторически раньше приняли TS и имеют более высокие зарплатные вилки.
В то же время чистый JavaScript доминирует в аутсорсе, поддержке легаси, быстром прототипировании и фриланс-сегменте, где средние ставки традиционно ниже. В этих сегментах наблюдается сдвиг: многие no-code и low-code платформы вытесняют простые JS-задачи, а требования к типизации растут даже во фриланс-проектах из-за необходимости интеграции с типизированными бэкенд-API.
По наблюдениям редакции, в значительной части сеньор-вакансий продуктовых компаний TypeScript указан как обязательный или желательный.
На джун- или мидл-уровне JavaScript по-прежнему доминирует, но наличие опыта работы с TypeScript в портфолио выгодно выделяет кандидата при отборе.
Международный тренд: по данным агрегированных отчётов (GitHub Octoverse 2025; State of JavaScript 2025), позиции с явным требованием TypeScript растут быстрее, чем общий рынок фронтенд-вакансий.
Откладывать знакомство с TypeScript не стоит: большинство фреймворков (React, Vue, Angular, NestJS) используют его по умолчанию, и раннее погружение в типизацию упрощает дальнейшее обучение.
Один из главных барьеров на пути внедрения TypeScript — производительность компилятора на больших репозиториях. Microsoft решает эту проблему кардинально.
Внутри команды проект известен под кодовым именем Corsa, официально — TypeScript Native Port или tsgo. Компилятор и Language Service переписываются с TypeScript и Node.js на Go. Выбор Go, а не Rust, был прагматическим: полное переписывание на Rust заняло бы годы и создало бы несовместимую ветку, тогда как порт на Go позволил сохранить поведенческую семантику и выпустить рабочий инструмент в обозримые сроки.
Метрика | До (Node.js) | После (Go) | Изменение* |
Компиляция 1,5 млн строк (кодовая база VS Code) | 77,8 с | 7,5 с | примерно в 10 раз |
Запуск Language Service (editor startup) | 9,6 с | 1,2 с | примерно в 8 раз |
Потребление памяти | 100% | около 50% | 2× |
*Источник: официальный блог Microsoft Developer, март 2025
TypeScript 6.0 (23 марта 2026) — последний релиз на JS-кодовой базе. strict: true включён по умолчанию.
TypeScript 7.0 — первый нативный релиз на Go, целевое окно — 2026 год; точная дата релиза на момент публикации статьи не объявлена. Планируется удаление устаревших опций (таргетинг на ES5, модульные форматы AMD/UMD).
Node.js type stripping: с версии 22.18.0 (июль 2025) флаг --experimental-strip-types больше не нужен — runtime игнорирует аннотации типов по умолчанию. Стабильным механизм объявлен в Node.js 25.2.0 (ноябрь 2025). Команда node demo.ts теперь работает без предварительной компиляции, так как рантайм игнорирует аннотации типов.
TC39 Type Annotations Proposal (Stage 1): инициатива по легализации синтаксиса, похожего на TypeScript, в .js-файлах. Браузеры будут воспринимать типы как комментарии, а проверку будет выполнять внешний чекер. Это снимет последний барьер — обязательный шаг сборки.
Академическое исследование 2025 года команды ETH Zurich и UC Berkeley, процитированное в отчёте GitHub Octoverse, зафиксировало: лишь около 6% ошибок компиляции в TypeScript-коде, сгенерированном большими языковыми моделями, — синтаксические. Подавляющая часть остальных ошибок — это нарушения контрактов системы типов: несовпадение интерфейсов, неверные предположения о структуре данных. Этот вывод теперь часто используют как аргумент в пользу TS.
Но типизация не делает ИИ «умнее», просто даёт ему явные спецификации: что функция принимает, что возвращает, какие поля обязательны. На практике это означает: если вы предоставляете ИИ интерфейсы или типы как контекст, вероятность получить рабочий код с первого раза значительно выше. Без типов код может быть синтаксически верным, но требовать значительной доработки под стиль проекта. Это снижает «шум» при интеграции автогенерированных патчей и уменьшает количество итераций код-ревью. Как отмечает GitHub: «Если вы собираетесь использовать ИИ в вашей разработке, как делает всё больше разработчиков с каждым днём, строго типизированные языки — ваши друзья».
TypeScript занял нишу стандартного инструмента профессиональной разработки, оставив JS в роли универсальной среды выполнения. Это зрелое разделение ролей, похожее на пару C/C++ или Swift/Objective-C.
Контекст | Рекомендуемый подход |
Прототипы, скрипты, виджеты меньше 1 тыс. строк | Личные или учебные задачи: подойдёт чистый JS. JSDoc + // @ts-check при необходимости. Коммерческие проекты: TS предпочтителен с самого начала, чтобы избежать проблем при интеграции и масштабировании. Маркетинговые страницы: рассмотреть no-code (Tilda, Webflow, Craftum) — часто экономичнее, чем разработка. |
Приложения 1–10 тыс. строк, команда 2–3 человека | TS по желанию, но важно оценить экономику: стоимость настройки CI и поддержки типов должна окупаться выгодами от автодополнения, безопасного рефакторинга и ускоренного онбординга новых разработчиков. Для проектов с планами роста — лучше начать с TS сразу. |
Проекты > 10 тыс. строк, распределённые команды | Рекомендуется TS. На этом масштабе типы становятся машиночитаемыми контрактами между модулями и командами, сокращают цикл код-ревью и предотвращают регрессии при изменениях. Окупаемость растёт пропорционально размеру кодовой базы и количеству разработчиков. |
Легаси без тестов | Прямая миграция на TS опасна: сначала рефакторинг и покрытие критических путей тестами, затем постепенная миграция через allowJs и ts-migrate. Стоит избегать одномоментной конвертации всего проекта — это создаёт иллюзию прогресса, но генерирует много any и @ts-ignore, которые редко вычищаются. |
Библиотеки с целью минимизации билд-степа | JSDoc + tsc --checkJs — золотая середина. Подход Svelte: типы проверяются и передаются потребителям библиотеки, но без .ts-файлов и лишнего шага сборки. Это снижает порог входа для контрибьюторов и упрощает отладку, сохраняя преимущества статической проверки. |
В 2026 году TypeScript стоит изучить большинству фронтенд- и фулстек-разработчиков: он уже используется во многих популярных фреймворках, помогает безопаснее работать с крупными кодовыми базами и упрощает командную разработку. При этом чистый JavaScript остаётся полезным для прототипов, небольших скриптов, обучения и проектов без сложной архитектуры.
В языковой экосистеме происходят сдвиги. Чтобы оставаться востребованным специалистом, нужно выходить из зоны комфорта и пробовать новое. Если всё ещё сомневаетесь, начните с чего-то небольшого и бесплатного:
курса «ИТ в действии: как создаются и живут цифровые продукты» с разбором 6 ИТ-профессий и промокодом на обучение;
записи вебинара «Освободитесь от авралов: ваш план по управлению нагрузкой»;
вводного курса бакалавриата ТюмГУ «Разработка IT-продуктов и информационных систем»;
практического курса «ИИ в деле: ускорьте свою работу».
Или можно сразу сделать решительный шаг к переменам, карьерному росту и повышению дохода с профессиональным обучением:
на продвинутом курсе «Backend-разработка на Node.js»;
на программе «Фулстек-разработчик на Python» с изучением ИИ и поддержкой лидеров индустрии;
в онлайн-бакалавриате ТюмГУ «Разработка ИТ‑продуктов и информационных систем» с партнёрами — Yandex Cloud и SourceCraft;
на программе профессиональной переподготовки «Фронтенд-разработчик»;
профессии «ИИ-разработчик: от API до агентов».