Профиль: Аноним (вход | регистрация) неRU opennet.me  
The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Доступен язык программирования TypeScript 7.0 с компилятором, переписанным на Go

09.07.2026 12:26 (MSK)

Компания Microsoft опубликовала релиз TypeScript 7.0, языка для разработки web-приложений, расширяющего возможности JavaScript, и связанного с ним инструментария. Выпуск примечателен поставкой нового компилятора typescript-go (tsgo), транслирующего код TypeScript в представление JavaScript, который был переписан на языке Go и теперь признан готовым для сборки рабочих проектов. Инструментарий распространяется под лицензией Apache 2.0, разработка ведётся в публичном репозитории через сервис GitHub. Спецификации языка открыты и опубликованы в рамках соглашения Open Web Foundation Specification Agreement.

Старый компилятор TypeScript был написан на языке TypeScript, что создавало проблемы с масштабированием при использовании в очень больших проектах. При загрузке и проверке кода подобных проектов в интегрированных средах разработки возникали большие задержки, что вынуждало разработчиков жертвовать удобством разработки в пользу сокращения задержек и отключать в редакторах возможности для проверки кода. В экосистеме также назрела потребность в инструментарии командной строки.

В новом компиляторе существенно увеличена скорость сборки, уменьшено потребление памяти и реализована новая архитектура, позволяющая распараллеливать выполнение многих операций, включая парсинг, проверку типов и генерацию кода. Парсинг и генерация кода теперь выполняются независимо для разных файлов. Помимо этого предоставлен компактный инструментарии командной строки tsc, позволяющий быстро собирать код для проверки его работоспособности.

По функциональности язык TypeScript 7 близок к TypeScript 6 и данные ветки взаимозаменяемы, а компиляторы могут сосуществовать в одной системе. Все необходимые для ветки TypeScript 7 настройки по умолчанию были изменены в выпуске TypeScript 6, в котором также были переведены в разряд устаревших возможности языка, несовместимые с TypeScript 7. Теоретически любой TypeScript-код, компилируемый в TypeScript 6.0, должен компилироваться и в TypeScript 7.0 при выставлении режима stableTypeOrdering и без использования флагов ignoreDeprecations. Какое-то время кодовые базы TypeScript 6.x и TypeScript 7.x будут параллельно сопровождаться и сосуществовать, пока ветка TypeScript 7 не достигнет зрелого состояния, готового полностью заменить старый инструментарий.

Что касается производительности компилятора, то по сравнению с прошлой веткой скорость сборки в TypeScript 7 возросла при пересборке vscode в 11.9 раз, sentry - в 8.9 раз, bluesky - 8.7 раз, playwright - 8.7 раз, tldraw - 7.7 раз. При этом потребление памяти уменьшилось при сборке vscode на 18%, sentry - 6%, bluesky - 26%, playwright - 11% и tldraw - 15%. Запуск в режиме проверки типов в TypeScript 7 производится в 10.6-16.7 раз быстрее, чем в TypeScript 6.

Язык Go выбран для написания нового компилятора как наиболее близкий к TypeScript по семантике и структуре кода, что позволило сохранить при портировании существующие шаблоны и упростило перенос изменений между кодовыми базами. При этом язык Go обеспечивает высокую производительность, развивается с оглядкой на многопоточное программирование, демонстрирует эффективную работу на многоядерных системах и имеет встроенные средства защиты от проблем при работе с памятью.

Язык TypeScript расширяет возможности JavaScript, оставаясь полностью обратно совместимым, что упрощает перевод существующих приложений на TypeScript. Итоговое приложение на TypeScript компилируется в обычный JavaScript, который можно выполнить в любом современном web-браузере или использовать c платформами Node.js, Bun и Deno. В программах на TypeScript можно использовать существующие JavaScript-библиотеки. От JavaScript язык TypeScript отличается средствами для явного определения типов, а также поддержкой использования полноценных классов. Статическая типизация позволяет избежать многих ошибок в процессе разработки, даёт возможность задействовать дополнительные техники оптимизации, упрощает отладку, делает код более читаемым и простым для доработки и сопровождения.

  1. Главная ссылка к новости (https://devblogs.microsoft.com...)
  2. OpenNews: Доступен TypeScript 6.0, последний выпуск с компилятором на JavaScript
  3. OpenNews: Microsoft переписывает компилятор TypeScript на языке Go
  4. OpenNews: В Node.js добавлена экспериментальная поддержка языка TypeScript
  5. OpenNews: Предложен компилятор исходных текстов на языке TypeScript в машинный код
  6. OpenNews: Утверждён перевод JavaScript-платформы Bun на язык Rust
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/65873-typescript
Ключевые слова: typescript
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (34) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Аноним (1), 13:54, 09/07/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    > с компилятором, переписанным на Go

    а почему не на Rust?

     
     
  • 2.2, Китсун (?), 13:57, 09/07/2026 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Потому что было проще портировать и меньше думать над borrowing, все спишем на GC
     
     
  • 3.29, Аноним (29), 15:32, 09/07/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Был бы на rust, можно было бы в Ц транслировать ;)
     
     
  • 4.32, Аноним (32), 15:35, 09/07/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Гошечка тоже в Ц транслируется.
     
  • 2.3, Вася Пупкин (?), 13:58, 09/07/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Рано, потом ещё графики с ускорениями и оптимизация и продадут
     
  • 2.4, anan (?), 14:01, 09/07/2026 [^] [^^] [^^^] [ответить]  
  • +/
    они его рассматривали на сколько я видел инфу в интернетах, но решили что на go будет проще, т.к. логическая структура кода при этом меньше менялась. т.е. не только api, но и внутрянка зеркалилась другими словами.
     
  • 2.5, Аноним (5), 14:01, 09/07/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/
    чтобы мейстрим жаба ещё и работала быстро - кажется вы угодили в силки отлова оптимистов
     
  • 2.11, Аноним (11), 14:21, 09/07/2026 [^] [^^] [^^^] [ответить]  
  • +/
    потому что он не нужен, очевидно.
    единственное преимущество раста - борроу чекер. а в языках с кучей бороу чекерить попросту нечего.
     

  • 1.6, Мемоним (?), 14:07, 09/07/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +3 +/
    Довольно иронично. Теперь им труднее будет отвечать на вопрос "а зачем вообще нужен ваш язык?"
     
     
  • 2.7, q (ok), 14:08, 09/07/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Баш написан на баше?
     
     
  • 3.8, Аноним (5), 14:12, 09/07/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/
    а что написано на баше?
     
     
  • 4.9, q (ok), 14:13, 09/07/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/
    спроси у любителей sysvinit
     
     
  • 5.28, Аноним (28), 15:29, 09/07/2026 [^] [^^] [^^^] [ответить]  
  • +/
    https://github.com/VHSgunzo/runimage?tab=readme-ov-file

    Любитель OpenRC

     
  • 3.22, Аноним (28), 15:06, 09/07/2026 [^] [^^] [^^^] [ответить]  
  • +/
    cmd.exe тоже написан не на cmd.exe, PowerShell тоже написан не на PowerShell.
     
  • 2.20, Аноним (20), 14:49, 09/07/2026 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Чтобы на нем писать.
    Очень удобно вообще-то, сейчас это стандарт, от JavaScript уже уходят.

    ... По крайней мере в enterprise. По крайней мере тут, в большинстве стран ЕС.

     
     
  • 3.23, Аноним (23), 15:08, 09/07/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Они пишут на тайпскрипте потому что стандарт. А стандарт это потому что...
    помогает писать код?
    типы ускоряют программу?

    потому что что? Я бы понял, если бы это был Elm или Clojurescript, другая парадигма. А тут то же самое, просто тайпхинты сверху. Которые ни к чему не обязывают.

     
     
  • 4.27, Billy (??), 15:27, 09/07/2026 [^] [^^] [^^^] [ответить]  
  • +/
    когда у тебя куча народа постоянно корячат бэк и фронт асинхронно пушто куче менеджеров из разных (часто конкурирующих) отделов всенепременно нужнен вчера этот крыжик воона там, а уровень команд такой, что единственное решение - это чтобы ЫЫ накатал сверху пару мегов кода с СуперПупуерУникальнымиИменами и пару килобайт СуперПуперУникальныхФункций, вызываюих СуперУникальныйВраппер над МегауникальнымВраппером чтобы прибавить к результату "+1", использование нашлёпнутых интерфейсов и типов в тотальной скриптолапше - это вообще единстенный вариант функционирования такой конструкции.
    дело не в том что тс - это просто нашлёпка и в итоге один фиг везде JS, но в том что кроме JS в браузер ничего не завезли. а ты про "парадигму" лол. твои рассуждения на совершенно другом уровне - они нерелевантны проблеме:)
     
     
  • 5.35, Аноним (20), 15:52, 09/07/2026 [^] [^^] [^^^] [ответить]  
  • +/
    > а ты про "парадигму"

    К сожалению, имеем, что имеем. JavaScript уже стал стандартом, бизнесу нужно было двигаться дальше.
    TypeScript - это не про Computer Science, тут нужно было решение на скорую руку, при чем такое, чтобы скомпилированный код можно было запустить на обычном JS интерпретаторе :(

     
  • 4.36, Аноним (20), 15:54, 09/07/2026 [^] [^^] [^^^] [ответить]  
  • +/
    > помогает писать код?

    Вообще да, если нормально работать с типами.

    > другая парадигма

    Смотрите ответ ниже :(

    > Которые ни к чему не обязывают.

    За то обязывают code review, которые есть во всех нормальных командах. А если сеньор, который проводят review, забивает на типы, то это уже проблема команды.

     

  • 1.10, IMBird (ok), 14:19, 09/07/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +3 +/
    Давайте всё делать на COM, чтобы была переносимость – закапывают COM
    Давайте всё делать на Win32, чтобы была переносимость – закапывают Win32
    Давайте всё делать на .NET, чтобы была переносимость – приколачивают .NET отдельно к винде и мобилкам, а в кроссплатформу отдают только перед тем, как начать закапывать
    Давайте всё делать на Silverlight, чтобы была переносимость – делают Silverlight ограниченным, отдельный рожают для мобильников, а потом закапывают всё сразу
    Давайте всё делать на WinRT, чтобы была переносимость – закапывают WinRT
    Давайте всё делать на Typescript, чтобы была переносимость – закапывают Typescript
     
     
  • 2.12, q (ok), 14:23, 09/07/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Все слоганы, что ты привел, являются плодом твоей буйной фантазии. Ни одна платформа не позиционировалась как "переносимая, на которой надо писать всё".
     
     
  • 3.16, Аноним (16), 14:32, 09/07/2026 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Ключевое в его лозунгах - закапывают. Остальное не важно.
     
  • 3.33, Аноним (32), 15:36, 09/07/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Вообще-то позиционировались.
     
  • 2.13, Макан Негодяй (?), 14:26, 09/07/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Жду когда сисярп закопают и всех незаменимых специалистов корпофилов - на мороз. Правда видимо ещё пока не скоро, придётся много рыбы выловить прежде чем они проплывут.
     
     
  • 3.19, Аноним (19), 14:37, 09/07/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Они просто перекатятся на Java и почти не заметят этого
     
     
  • 4.21, Макан Негодяй (?), 14:58, 09/07/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Ну пусть катаются, весёлые колобки.
     
  • 3.25, Аноним (23), 15:09, 09/07/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Его не закопают, он too big to fail.

    Чем ждать закапывания, лучше пили что другое.

     
  • 2.17, Аноним (17), 14:36, 09/07/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Так Win32 достигла переносимости, с помощью wine.
     
  • 2.34, Billy (??), 15:37, 09/07/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Давайте заменим JS Lua - закопали Lua
    Давайте заменим JS Dart - закопали Dart
    Давайте заменим JS Wasm - закопали Wasm

    когда все браузеры (и те что не обновляются) будут поддерживать что-то кроме JS (никогда) можно будет закапывать JS.
    тупоскрипт - это JS с встроенной справкой методов и только

     

  • 1.14, Аноним (14), 14:26, 09/07/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    > Итоговое приложение на TypeScript компилируется в обычный JavaScript

    оно не компилируется никуда, можно стереть типы и юзать (в 99% случаев) чистый js. в основном треде бандл делать сразу, проверять типы в соседнем. ускорение в 20+ раз

     
     
  • 2.15, Аноним (5), 14:29, 09/07/2026 [^] [^^] [^^^] [ответить]  
  • +/
    ука, надо было джит развивать оказывается
     
  • 2.30, Billy (??), 15:32, 09/07/2026 [^] [^^] [^^^] [ответить]  
  • +/
    соберись у тебя угроза дислексии. ты стираешь типы и в соседнем треде хочешь их проверять? если их стереть, как их проверить?
     

  • 1.26, GG (ok), 15:21, 09/07/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • –2 +/
    Хватит эту дезу распространять.  
    Тупоскрипт ничего никуда не расширяет, а типизация там только для вида и способов реализации её в жабаскрипте много.  
    Никакой оптимизации оно не даёт, наоборот добавляет огромный оверхед.
     
     
  • 2.31, Billy (??), 15:34, 09/07/2026 [^] [^^] [^^^] [ответить]  
  • +/
    оно даёт плюс ни к работе js, а к скорости работы людей с js
     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2026 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру