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.