import React fron "react";
type ButtonOrLinkProps = | (React.ButtonHTMLAttributes<HTMLButtonElement> & { as?: "Button"}) | (React.AnchorHTMLAttrributes<HTMLAnchorElement>) & { as: "a"});
const ButtonOrLink = (props: ButtonOrLinkProps) => {
if(props.as === "a"){
return <a {...props} />
}
return <button {...props} />
}
/** Use case */
<ButtonOrLink onClick={(e) => {console.log(e)}}/>
<ButtonOrLink as="a" onClick={(e) => {console.log(e)}}/>