компонента?
например, есть компонент:
const Button: React.FC<HTMLButtonElement | HTMLAnchorElement> = props => {
if (props.type === 'submit') {
return <button {...props as HTMLButtonElement} />
}
return <a {...props as HTMLAnchorElement} />
}
и вот получается, что если я вставляю этот компонент типа
<Button type="submit" href="#" />
то мне отрендерится корректная кнопка, но с атрибутом href, которого там быть не должно (по идее) т.к. я ожидаю отрендерить только допустимые атрибуты кнопки. Как можно профильтровать имеющиеся пропсы по типам и выбрать только те, что соответствуют кнопке?
использовать деструктуризацию?
Просто средствами TS нельзя. Фильтровать надо в рантайме, а типов в рантайме нет.
Обсуждают сегодня