наверное потому что там | стоит
Я имею ввиду, почему тернарный оператор не может определить, что условие true всегда верно, и тип string никогда не вернется, а обычный if понимает это
Он не настолько умен. У тебя в условии может быть что угодно. Плюс переменная через let и ниже ты ее можешь переназначить.
В if тоже может быть что угодно, и после него тоже можно переназначить переменную, но ts понимает, что пока переменную не переназначили, она имеет тип number
Очень интересно. Не знал. Воспроизвёл на плейграунде. Действительно похоже на недоработку - можно ишью заводить Почему ТС только имеративные ифы уважает? Непорядок...
Обсуждают сегодня