Усередине перапісву TypeScript 7 на мову Go: прырост швальнасці без змян у кодзе.
Дазвольце даклэ научыцца, як кампайляр TypeScript 7, створаны на мове Go, даёт у 8-12 разоў быстрэйшы процес складання, чаму така змяна архітектуры ўздоўжвае, і як безпечна апгрэйдаваць існуючыя проекты.
Кампайляр тепер працюе на двыжку, адасвячанам Go; ваш код не патрабуе жадных змян, а часы кампаўління значна зменіліся
Значныя апдэйты інструментаў, якія з’являюцца толькі кожныя калькі гадоў, часта зменяюць вашы ўласны робочы процес, і TypeScript 7 падпалягае на гэты прынцып. Microsoft перабудаваў кампайляр для значна лепшых практычных наследжэнняў — цэлыя процесы кампаўління выконваюцца на 8-12 разоў быстрэй — без неабходнасці вносіць жадныя змяны ў функцыі языка, якія вы вжываеце ўжо зараз.
Што насправды было выдана
TypeScript 7 быў выдан 8 ліпеня 2026 года і заменіў кампайлер, базаваны на JavaScript, на абмовную рэалізацыю на мове Go, створаную ў рамках внутрашняй працы пад назвай Project Corsa. Варта падкрэсліць, што це ўсё ж такі аднаўлены варыянт, а не перадзял: тая ж логіка пераканальвання типаў і семантыка мовы былі перакладзеныя лінія за лініяй, таму вашы файлы з расширэнням .ts будуць працаваць абсолютна так жа, як і раней. Зменіўся толькі базовы двыжок, який выконвае гэтую логіку, а не сама логіка.
За данымі внутрашняях тэстаў Microsoft, адбытых на самай базе коду VS Code, час запуску проекта зменіўся з майже хвілі на адносна дзесяць секундаў. Гэта галоўны рызультат. У практычнай практыцы затрымкі, якія раней былі пад час запуску команды tsc --watch пасля змены веткаў, значна зменшуюцься.
Чаму ён такі быстры
Два архітектурныя змены сталы прычыной большайшага пады швальнасці.
- Компільваны натыўны код замест адработкі через Node.js і двыжок V8
- Паралелізм з аднародным памяцю, які дазволяе паралельна адрабатваць паспаковку, перакантрольванне типаў і стварэнне коду на калькі CPU
У гэтым выданні таксама адкрываюцца новыя флагі, --checkers і --builders, якія дазволяюць кантролаваць, сколькі паралельных рабочых нитэў будуць адрабатваць перакантрольванне типаў і стварэнне проектных рэферэнсаў. Режым абзіроўвання таксама быў перераблены: ён тепер выкарыстоўвае прыстрой для абзіроўвання файлаў на базе Go, які спачатку быў разработаны для Parcel, і тепер выконвае інкрементальную перзбудову значна быстрэй у вялікіх монорепозітарыях.
Як насправдзе апградаваць
Інсталляцыя новага кампіляра работае абсолютна так, як і ранейш:
npm install -D typescript
npx tsc --version
# TypeScript 7.0
Няма нічога, што трэба было бы пераносіць з канфігурацыі, няма кодамодаў, якія трэба запускаць, і няма змян сінтаксісу, якія маглі б спанаваць проблемы. Якщо ваша команда ўжо выкарыстоўвала пакет @typescript/native-preview на стадіі кандыдата на выпуск, то гэтая функцыянальнасць — створаная на адной з бінарных дапамог tsgo — была пераканфігуравана ў стандартны пакет typescript, доступны чераз тэг распадзелу next.
Є адзін момент, на якій варта звернуць увагу: API для програмнаўскага кампайляра яшчэ не стала абсалютна стабільным. Якщо ваша практыка складання, настройкі ESLint чы адзінствацкія інструменты выкарыстоўваюць API TypeScript безпосередна, а не проста запускаюць tsc, то нараз часоў застаўцеся ад стварэння новага коду, які выкарыстоўвае інтэрфейсы на кшталт createProgram. Команды, якія знаходзяцца ў такой ситуацыі, должны адкласці цэлы переход да новай версіі пакуль не будзе выпускана версія 7.1, адкуль, як спадзяюцца, будуць усунутыя недагоднасці, якія з’явіліся падчас пераходу ў минулым годзе.
Што гэта значыць для проектаў React і Next.js
Паколькі так многа інструменты для фреймворкаў ствараны на базе кампайляра TypeScript, гэтыя інструменты автаматычна успадковуюць павышэння продуктывасці. Перакантрольваўленне типаў пад час будовы проекту ў Next.js, адказнасць функціі IntelliSense у рэдагувальніку ў большых бібліятеках компонентаў, створаных з Redux або Tailwind, а таксама перакантрольваўленне типаў у проектах монорепо ўсе становяцца шырэй без якіх-леба змян у кодзе з вашай стороны. Для команд, якія адкладалі актывацыю параметра strict: true, таму што перакантрольваўленне типаў усього проекту здавалася занадта медленным, гэты час — практычная нагода пераразважыцца, адколькі вычысловыя затраты на такое рашэнне проста зменшыліся у каскад.
Галоўныя выводы
- TypeScript 7 перапісвае кампайляр, а не сам язык — ваш код перакантрольваецца такім жа спосабам, толькі на новым двыжку на аснове Go.
npm install, але утримайцеся ад викорыстанняя програмнага API для спецыяльных інструментаў пакуль не выйдзе версія 7.1.Якщо прычыной вашага утриманняяся ад акываванняя строгай перацэнкі типоў былі часы запуска, гэтыя адказы больш не дапамагаюць. Зінсталюйце новую версію, запустіце вашы існуючыя тэсты, і старайцеся, каб часы вашага CI-пайплайну зменшыліся.
Супаўзвязаная літэратура
- TypeScript 6 і 7: Расумнейшая інференція, а пасуючы перапісваў на Go — Дазвольце дазнацца, як TypeScript 6 усунуў ключавыя прасоці інференціі та модернізаваў стандартныя настройкі, стварыўшы падставу для цэлага перапісваў кампайляра TypeScript 7 на мове Go.
- Кампайляр TypeScript на Go і виконанне на натыўнай апаратнасці: Практычны паўодлівач — Дазвольце дазнацца, як кампайляр TypeScript на мове Go і виконанне на натыўнай апаратнасці паўтарыцца на кодбазах React і Next.js, а таксама што трэба выправіць у вашым tsconfig зараз.