Напиши тип Middle Объединения и сужение обновлено
Сужение через равенство
Вопрос
Какой тип у x внутри if? Впишите тип.
function f(x: string | number, y: string | boolean) {
if (x === y) {
x; // x: /* ? */
}
}
Попробуйте сами
Напишите тип, как написали бы в коде.
Показать ответ и разбор
Коротко
Правильный тип: string. Строгое равенство возможно, только если у x и y совпадает тип.
Правильный тип
string
Разбор
Строгое равенство возможно, только если у x и y совпадает тип. Общий член двух объединений один: string. Поэтому внутри if и x, и y сужены до string.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.