The OpenNET Project / Index page

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

Доступен TypeScript 6.0, последний выпуск с компилятором на JavaScript

24.03.2026 11:54 (MSK)

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

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

Ветка TypeScript 6.0 отмечена как последняя, поставляемая с компилятором на языке TypeScript, транслируемом в JavaScript. В ветке TypeScript 7.0 проект перейдёт на новый компилятор typescript-go (tsgo), разрабатываемый с 2024 года на языке Go. Новый компилятор существенно увеличит скорость сборки, уменьшит потребление памяти и сократит время запуска редакторов кода, что решит наблюдаемые ныне проблемы с масштабированием при использовании в очень больших проектах. Также будет предоставлен компактный инструментарии командной строки, позволяющий быстро собирать код для проверки его работоспособности.

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

Среди изменений в TypeScript 6.0:

  • Реализована возможность использования префиксов "#/" в стиле Node.js для импорта псевдонимов модулей, определённых внутри пакета, вместо указания относительных путей. Например, 'import * as utils from "#root/utils.js"' вместо 'import * as utils from "../../utils.js'.
  • Добавлен флаг "--stableTypeOrdering" для включения применяемого в ветке TypeScript 7 алгоритма детерминированной сортировки типов внутри компилятора, гарантирующего одинаковый порядок определения типов в любых окружениях. Режим рекомендуется использовать только для диагностики возможных проблем перед переходом на ветку TypeScript 7, так как его включение в TypeScript 6.0 может замедлить компилятор на 25%.
  • Реализованы встроенные типы для API Temporal, предлагающего альтернативные методы для работы с датами и временем, позволяющие манипулировать датами с учётом и без учёта часовых поясов, конвертировать время, форматировать вывод и выполнять арифметические операции со временем.
  • Добавлены типы для upsert-методов getOrInsert и getOrInsertComputed в объектах Map и WeakMap, возвращающих уже имеющееся в коллекции значение, ассоциированное с указанными ключом, или создающих новую запись, если ключа не нашлось.
  • Добавлена поддержка функции RegExp.escape, экранирующей спецсимволы в строках для из безопасного использования в качестве шаблона внутри регулярных выражений, задаваемых через конструктор RegExp().
  • Изменены настройки по умолчанию:
    • Параметр rootDir теперь указывает на текущий каталог ".", в котором размещён файл конфигурации tsconfig.json, в не на типовой каталог с исходным кодом.
    • Поле "types" в tsconfig.json теперь определяется как "[]" вместо "["*"]", т.е. TypeScript теперь по умолчанию не включает все пакеты из "node_modules/@types" и требует явного указания глобальных пакетов (например, ["node", "jest"])). Изменение приводит к сокращению времени компиляции на 20-50%.
    • Значение target теперь включает актуальную версию ECMAScript (es2025). В поле tagret объявлена устаревшей версия es5 (ECMAScript 5), в качестве минимальной заявлена версия es6 (ECMAScript 2015).
    • По умолчанию активирован режим strict для строгой проверки типов.
    • Параметр module по умолчанию выставлен в значение "esnext", включающем поддержу JavaScript-модулей (ESM) с директивами import и export, вместо устаревшего формата CommonJS.
  • Для повышения производительности компилятора объявлены устаревшими:
    • Опция "--baseUrl".
    • Использование ключевого слова module для определения пространств имён модулей ("module Foo { ... }" вместо "namespace Foo { ... }").
    • Опция "--outFile " (следует использовать внешние упаковщики, такие как esbuild, Rollup, и Webpack);
    • Режим "--moduleResolution: classic" (рекомендуется использовать nodenext или bundler).


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


Обсуждение (36) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Аноним (1), 13:19, 24/03/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +3 +/
    >В ветке TypeScript 7.0 проект перейдёт на новый компилятор typescript-go (tsgo), разрабатываемый с 2024 года на языке Go.

    Очень несовременно, неожиданно для Микрософта. Мы все знаем, какой ЯП должен использоваться для разработки нового компилятора.

     
     
  • 2.2, Аноним (2), 13:25, 24/03/2026 [^] [^^] [^^^] [ответить]  
  • +5 +/
    Bash?
     
     
  • 3.35, Аноним (35), 15:06, 24/03/2026 [^] [^^] [^^^] [ответить]  
  • +/
    powershell же, ну
     
  • 2.3, q (ok), 13:26, 24/03/2026 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Будь немного снисходителен к неосиляторам борова. Хотя что там осиливать, его правила умещаются на клочке бумаги размером со спичечный коробок.
     
     
  • 3.6, Tron is Whistling (?), 13:29, 24/03/2026 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Первое правило: перед боровом встань на четвереньки?
     
     
  • 4.10, Жироватт (ok), 13:33, 24/03/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Первое правило борова: никому не рассказывай о своих экспериментах с боровом
    Второе правило борова: всем и каждому навязывай использование борова
    Третье правило борова: везде используй аффинажные типы, особенно для организации RCE
    Четвёртое правило борова: не ешь дьяблочко, его съест боров
    Пятое правило борова: ансейф можно использовать, но яростно отрицай его использование
    Шестое правило борова: блаженны верующие в б-га нашего, борова, да скомпилируются они
    Седьмое правило борова: те, кто делает ошибки на Швятом Йазые Борова - те неправильные программисты
    Восьмое правило борова: не ешь дьяблочко, кому я сказал!
    Девятое правило борова: да будь проклят тот, кто смеет находить "технологические отверстия" для RCE в языке б-га нашего, Борова.
    Десятое правило борова: Проект без CoC'а - не существует. Добавь борова проверять CoC
     
     
  • 5.21, Аноним (21), 14:30, 24/03/2026 [^] [^^] [^^^] [ответить]  
  • +/
    А как же: отрицай все ошибки называя их логическими и вообще не считаецо?
     
     
  • 6.24, Аноним (24), 14:36, 24/03/2026 Скрыто ботом-модератором     [к модератору]
  • +/
     
  • 4.11, Аноним (11), 13:38, 24/03/2026 Скрыто ботом-модератором     [к модератору]
  • +1 +/
     
  • 2.4, Жироватт (ok), 13:27, 24/03/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Free Pascal для gui
    Common Lisp для движка разбора и кодогенерации
     
  • 2.5, Аноним (5), 13:28, 24/03/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/
    А какой? С#?
     
     
  • 3.7, Жироватт (ok), 13:29, 24/03/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/
    JavaEE
     
  • 2.8, Аноним (8), 13:29, 24/03/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Для того, чтобы тот язык использовался, надо сначала написать на другом.
     
  • 2.16, Аноним (16), 14:12, 24/03/2026 [^] [^^] [^^^] [ответить]  
  • +4 +/
    Лазутчики из Гугла внедрили враждебную технологию вместо C# это диверсия теперь компилятор Go шлёт телеметрию про разработчиков из Майков.

    В плане один текст преобразовать в другой у Go нет совершенно никаких преимущеста по сравнению с C#.

     
     
  • 3.23, Аноним (23), 14:36, 24/03/2026 [^] [^^] [^^^] [ответить]  
  • +/
    > нет совершенно никаких преимущеста

    А недостатки есть?

     
  • 3.26, Hac3r (?), 14:40, 24/03/2026 [^] [^^] [^^^] [ответить]  
  • +/
    с разморозкой
    это уже обсудили пару лет назад
    они выбрали Go (рассматривали C# и Rust) потому что Go ближе к синтаксису TypeScript на котором написан текущий компилятор
    Так как у них небольшая команда для этого им было проще взять Go для переписывания практически как есть
     
     
  • 4.36, Аноним (35), 15:11, 24/03/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Го они выбрали, жалко писать не научились на нем
    Открыл этот tsgo/main, а там семь строчек вынесены в отдельный вызов лишь бы не в самой main() вызывать

    впрочем по имени и цвету коммитера на аватарке дело пахнет и пахнет неприятно

    вощем веб абизьян опять обманули бананом, подсунув гниль вместо компилятора

    Не удивлен

     
  • 3.27, Hack3r (?), 14:41, 24/03/2026 [^] [^^] [^^^] [ответить]  
  • +/
    с разморозкой
    это уже обсудили пару лет назад
    они выбрали Go (рассматривали C# и Rust) потому что Go ближе к синтаксису TypeScript на котором написан текущий компилятор
    Так как у них небольшая команда для этого им было проще взять Go для переписывания практически как есть
     
  • 3.28, 6омжаним (ok), 14:41, 24/03/2026 [^] [^^] [^^^] [ответить]  
  • +/
    >> В плане один текст преобразовать в другой у Go нет совершенно никаких преимущеста по сравнению с C#.

      ДА! создатель языка C# выбрал Go, вместо своего творения, потому что нет преимущества, тебе же пердежисту лучше знать.
      Вот поэтому возьми и напиши свою версию компилятора на C# - это же всего-лишь:
    преобразовать один текст в другой.
    Докажи, что он был не прав.

     

  • 1.9, Аноним (9), 13:32, 24/03/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Вот правда надеюсь, что последний.
     
     
  • 2.18, Аноним (18), 14:24, 24/03/2026 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Чем вам так не угодил этот отличный (без шуток) язык? Такую мощной и в то же время удобную систему типов ещё поискать - разработчики отлично смогли соблюсти баланс
     
     
  • 3.20, Аноним (16), 14:27, 24/03/2026 [^] [^^] [^^^] [ответить]  
  • +/
    В coffescript тоже все было хорошо, но злобные майки все подмяли под себя как обычно.
     
     
  • 4.25, Аноним (18), 14:37, 24/03/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/
    В CoffeeScript вообще не было и нет системы типов. Это такая же рантайм-лапша как в обычном JS
     
  • 3.30, Аноним (30), 14:56, 24/03/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Настолько мощная система типов не нужна (без шуток). Многие веб-мaкаки, как обычно, не зная меры, кинулись программировать на типах, безмерно запутывая код.
     
     
  • 4.34, Аноним (34), 15:05, 24/03/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Согласен, многие библиотеки грешат огромным количеством ненужных дженериков.
    Но все равно это лучше, чем портянки pure JS кода.

    А так-то сдуру можно на любом языке написать дутко переусложнённый код. Вспомните ООП-истерию в Java или более свежее засилие ФП в стиле «написал строку без каррирования - вон из профессии».
    Со временем всё устаканивается и принимает адекватные формы

     

  • 1.12, Аноним (12), 13:55, 24/03/2026 Скрыто ботом-модератором [﹢﹢﹢] [ · · · ]     [к модератору]
  • –2 +/
     
  • 1.13, Аноним (16), 14:08, 24/03/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Единственный нормальный джаваскрипт.
     
  • 1.14, Аноним (14), 14:09, 24/03/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Почему в браузерах просто не добавят инетерпретатор Typescript? Уже почти вся разработка на нем.
     
     
  • 2.17, Аноним (18), 14:20, 24/03/2026 [^] [^^] [^^^] [ответить]  
  • +/
    А зачем? Браузер даёт рантайм и VM под низкоуровневый "байткод" (JS). Всё остальное - сверху.
    Всё равно ведь без фазы компиляции исходников в готовый бандл не обойтись, если это не совсем уж простенький HTML.
    Даже в до-TS времена уже существовал babel, который транспилировал один JS в другой JS просто ради совместимости со старыми версиями
     
  • 2.19, Аноним (16), 14:26, 24/03/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Зачем там интерпретатор, когда можно typescript сразу транслировать в wasm?
     
     
  • 3.22, Аноним (18), 14:31, 24/03/2026 [^] [^^] [^^^] [ответить]  
  • +/
    В TypeScript (JS) есть eval() для JS-кода, а это не поддерживается в wasm. Плюс, в wasm нет прямого доступа к DOM.
    Это в совокупности делает прямую компиляцию в wasm невозможной без кучи костылей и ограничений
     

  • 1.15, Джон Титор (ok), 14:11, 24/03/2026 Скрыто ботом-модератором [﹢﹢﹢] [ · · · ]     [к модератору]
  • +/
     

  • 1.29, Аноним (29), 14:46, 24/03/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Все по настоящему производительные вещи пишутся и оптимизируются на js. Если пишешь что то очень ts специфичное, то он нагенерирует такую портянку кода... Вот и выбирай: либо система типов, либо производительность.
     
     
  • 2.32, Аноним (30), 15:03, 24/03/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Нагенерирует в JS он ровно то что ты написал, 1 в 1, всего лишь вырезав определения типов. В общем, советую получше узнать предмет обсуждения, прежде чем делиться своим экспертным мнением.
     

  • 1.33, Аноним (35), 15:03, 24/03/2026 Скрыто ботом-модератором [﹢﹢﹢] [ · · · ]     [к модератору]
  • +/
     

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



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

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