Напиши тип Senior Утилитарные типы обновлено
Расширение с заменой поля
Вопрос
Тип, у которого поля Button, но onClick заменён на свой обработчик.
type ButtonProps = { onClick: (e: MouseEvent) => void; label: string };
type MyProps = /* ? */;
Попробуйте сами
Напишите тип, как написали бы в коде.
Показать ответ и разбор
Коротко
Правильный тип: Omit<ButtonProps, 'onClick'> & { onClick: () => void }. Ответ Почему так Omit + пересечение - стандартный приём сужения чужого API.
Правильный тип
Omit<ButtonProps, 'onClick'> & { onClick: () => void }
Разбор
Ответ
Omit<ButtonProps, 'onClick'> & { onClick: () => void }
Почему так
Omit + пересечение - стандартный приём сужения чужого API. Простое пересечение без Omit дало бы несовместимые сигнатуры, и вызвать onClick стало бы невозможно.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.