The Temporal Dead Zone, or why the TypeScript codebase is full of var statements
В TypeScript-коде Microsoft активно используются устаревшие var вместо современных let и const, несмотря на их проблемы с областью видимости. Это связано с Temporal Dead Zone (TDZ) — зоной, где переменные объявлены, но не инициализированы. При использовании let и const обращение к переменным в TDZ вызывает ошибки, что повышает надёжность, но требует вычислительных ресурсов.
Переход на var в критичных к производительности участках дал TypeScript до 8% ускорения в бенчмарках, поскольку var избегает проверок TDZ. Это демонстрирует компромисс между безопасностью кода и производительностью, особенно в крупных проектах, где даже небольшие оптимизации значимы.