javascript

TypeScript vs JavaScript в 2026: почему TS обогнал JS и что это значит для разработчиков

  • четверг, 11 июня 2026 г. в 00:00:16
https://habr.com/ru/companies/netologyru/articles/1042346/

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

Дмитрий Бронских

Тимлид в ООО «Ярус». Помог с подготовкой статьи.

Смена парадигмы — от конкуренции к разделению ролей

В октябре 2025 года GitHub выпустил отчёт Octoverse, главный вывод которого: TypeScript стал самым используемым языком на платформе по числу уникальных контрибьюторов. GitHub назвал это наиболее значимым сдвигом в языковой экосистеме за более чем десять лет.

Команды больше не спрашивают «TS или JS?». Они пишут на TypeScript ради безопасности, рефакторинга и ИИ-ассистентов, а на выходе получают JavaScript, который исполняется в браузере или в Node.js.

Цифры за заголовками: что на самом деле измеряют отчёты 2025–2026

Цифры роста TypeScript часто цитируют как доказательство абсолютной победы. Но чтобы делать выводы, важно понимать, что измеряет каждая метрика и где её пределы.

GitHub Octoverse 2025: TypeScript обгоняет Python с минимальным отрывом

Язык

Месячные контрибьюторы

Изменение с августа 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 и Stack Overflow: доля использования

  • 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 — он накладывается на него как инструментальный слой.

Экосистема пакетов: 50–80 млн загрузок в неделю

Пакет 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.

Это идеальный сценарий: компания с выделенным бюджетом, инфраструктурными командами и стратегическим приоритетом качества. На практике большинство коммерческих проектов сталкивается с ограничениями: нехватка квалифицированных специалистов, давление сроков, отсутствие бюджета на инвестиции с отложенной окупаемостью. Для средних проектов миграция возможна от квартала до полугода при наличии компетенций; для крупных легаси-систем чаще выбирается стратегия параллельной разработки новой версии или постепенной заморозки старой кодовой базы.

Где TypeScript добавляет сложности

  1. Накладные расходы на конфигурацию: tsconfig.json, стратегии разрешения модулей, strict-флаги, совместимость со сборщиками (bundlers) — всё это требует опыта. Ошибки в конфигурации часто маскируются под «баги компилятора».

  2. Долг слабых типов: автоматическая миграция без последующей чистки создаёт иллюзию безопасности. Код компилируется, но any и отключённые проверки сводят пользу типизации к нулю.

  3. Выполнение и компиляция: типы исчезают после сборки. На границах системы (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, обучения команды и дисциплины в поддержке типов. Без этого типизация превращается в бюрократический слой, который замедляет разработку и не защищает от багов.

Зарплаты и карьера в 2026: нюансы рынка

Часто звучит мнение: «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-секторе, финтехе и продуктовых компаниях — там, где бюджеты на разработку и уровни компенсаций традиционно выше.

Важный нюанс: наблюдаемая корреляция не означает причинно-следственную связь «выучил типы → получил больше денег». Разница в оплате отражает в первую очередь:

  1. Масштаб проекта: TS чаще требуется в кодовых базах >10 тыс. строк, где выше требования к надёжности.

  2. Зрелость процессов: компании со строгим CI/CD, код-ревью и тестированием чаще внедряют TS — и чаще платят выше рынка.

  3. Домен: финтех, 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) используют его по умолчанию, и раннее погружение в типизацию упрощает дальнейшее обучение.

Project Corsa (tsgo) и горизонт планирования: куда движется экосистема

Один из главных барьеров на пути внедрения TypeScript — производительность компилятора на больших репозиториях. Microsoft решает эту проблему кардинально.

Что такое нативный порт

Внутри команды проект известен под кодовым именем Corsa, официально — TypeScript Native Port или tsgo. Компилятор и Language Service переписываются с TypeScript и Node.js на Go. Выбор Go, а не Rust, был прагматическим: полное переписывание на Rust заняло бы годы и создало бы несовместимую ветку, тогда как порт на Go позволил сохранить поведенческую семантику и выпустить рабочий инструмент в обозримые сроки.

Измеримые улучшения (по данным Microsoft)

Метрика

До (Node.js)

После (Go)

Изменение*

Компиляция 1,5 млн строк (кодовая база VS Code)

77,8 с

7,5 с

примерно в 10 раз

Запуск Language Service (editor startup)

9,6 с

1,2 с

примерно в 8 раз

Потребление памяти

100%

около 50%

*Источник: официальный блог 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: «Если вы собираетесь использовать ИИ в вашей разработке, как делает всё больше разработчиков с каждым днём, строго типизированные языки — ваши друзья».

Как выбирать стек в 2026 году

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 остаётся полезным для прототипов, небольших скриптов, обучения и проектов без сложной архитектуры. 


В языковой экосистеме происходят сдвиги. Чтобы оставаться востребованным специалистом, нужно выходить из зоны комфорта и пробовать новое. Если всё ещё сомневаетесь, начните с чего-то небольшого и бесплатного:

Или можно сразу сделать решительный шаг к переменам, карьерному росту и повышению дохода с профессиональным обучением:

Только зарегистрированные пользователи могут участвовать в опросе. Войдите, пожалуйста.
На чём вы пишете сейчас?
29.27%Только TS12
19.51%В основном TS8
12.2%Поровну: TS и JS5
9.76%В основном JS4
12.2%Только JS5
17.07%Другое7
Проголосовал 41 пользователь. Воздержались 4 пользователя.