UNPKG

alinea

Version:
13 lines (12 loc) 633 B
import { type ForwardRefRenderFunction } from 'react'; export type As<Props = any> = React.ElementType<Props>; export type PropsWithAs<Props = {}, Type extends As = As> = Props & Omit<React.ComponentProps<Type>, 'as' | keyof Props> & { as?: Type; }; export type ComponentWithAs<Props, DefaultType extends As> = { <Type extends As>(props: PropsWithAs<Props, Type> & { as: Type; }): JSX.Element; (props: PropsWithAs<Props, DefaultType>): JSX.Element; }; export declare function forwardRefWithAs<Props, DefaultType extends As>(component: ForwardRefRenderFunction<any, any>): ComponentWithAs<Props, DefaultType>;