Веб-страница | frontend, backend, fullstack, react, vue, javascript, typescript, css, html
IT и технологии · 8 июня 2026 г.
Почему TypeScript иногда выводит не тот тип: разбор алгоритма — 8 июня 2026 г. в 12:14:04.053
Почему TypeScript иногда выводит не тот тип: разбор алгоритма Казалось бы, вывод типов — базовая механика компилятора. Но в двухфазном алгоритме TypeScript есть ловушки, которые ловят даже опытных разработчиков: компилятор сначала собирает кандидатов из ковариантных и контравариантных позиций, а потом сворачивает их в единственный тип. При этом контравариантный результат обычно побеждает, а общий супертип никогда не выходит за рамки списка кандидатов. В материале разбирают, почему пересечения типов ведут себя непредсказуемо, почему условные типы внутри generic-контекста не вычисляются и как NoInfer<T> с TypeScript 5.4+ блокирует вывод из конкретной позиции. Сохраните, если пишете API со значениями по умолчанию или ловили странный unknown там, где ждали конкретный тип.

