TypeScript 7 оптимизирует потребление памяти в Go to Implementation
Опубликовано: 30 июля 2026 г.
Microsoft устранила проблему масштабирования потребления памяти в функции Go to Implementation нативной языковой службы TypeScript.
Что изменилось
Для поиска реализаций языковая служба использует рабочую очередь обхода в ширину. Для члена интерфейса с большим количеством реализаций повторные поиски по всей программе могли снова возвращать одни и те же ссылки. Поэтому число сохраняемых ссылок, заданий в очереди и групп результатов могло расти квадратично и исчерпывать память в крупных проектах с глубоко вложенными типами.
Исправление устраняет дублирование узлов ссылок перед их добавлением в рабочую очередь и исключает сохранение повторяющихся определений символов. Регрессионный тест проверяет, что удвоение количества реализаций приводит к приблизительно линейному, а не квадратичному росту.
Почему это важно
Теперь Go to Implementation может обрабатывать такой сценарий, не сохраняя многократно одни и те же внутренние ссылки. Окончательный ответ редактору уже не содержал дубликатов, поэтому изменение направлено на скрытые затраты памяти и вычислительной работы, необходимые для получения этого ответа.
Доступность
Изменение было внесено в нативную кодовую базу TypeScript после выпуска TypeScript 7.0. В источнике не указана стабильная версия npm, содержащая это исправление, поэтому, прежде чем полагаться на него, пользователям следует проверить примечания к выпуску установленной версии.
Источник
Ознакомьтесь с официальным изменением: Fix O(K^2) OOM issue in go-to-implementation.