Напиши тип Senior Объединения и сужение обновлено
Взаимоисключающие пропсы
Вопрос
Каким приёмом описать компонент, у которого либо href, либо onClick, но не оба сразу?
type Props =
| { href: string; onClick?: never }
| { onClick: () => void; href?: never };
Попробуйте сами
Напишите тип, как написали бы в коде.
Показать ответ и разбор
Коротко
Правильный тип: union. Ответ Почему так Union вариантов плюс ?: never на чужом поле делает недопустимую комбинацию ошибкой компиляции.
Правильный тип
union
Разбор
Ответ
union
Почему так
Union вариантов плюс ?: never на чужом поле делает недопустимую комбинацию ошибкой компиляции. Так типизируют компоненты, которые ведут себя то как ссылка, то как кнопка.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.