Skip to content

Instantly share code, notes, and snippets.

@kleva-j
Last active December 9, 2023 15:26
Show Gist options
  • Save kleva-j/a3327871605f5b5f4ce22db2dea1dd9e to your computer and use it in GitHub Desktop.
Save kleva-j/a3327871605f5b5f4ce22db2dea1dd9e to your computer and use it in GitHub Desktop.
React HTML props in TypeScript.
import * as React from 'react';
export type AProps = React.DetailedHTMLProps<React.AnchorHTMLAttributes<HTMLAnchorElement>, HTMLAnchorElement>;
export type APropsWithoutRef = React.AnchorHTMLAttributes<HTMLAnchorElement>;
export type AreaProps = React.DetailedHTMLProps<React.AreaHTMLAttributes<HTMLAreaElement>, HTMLAreaElement>;
export type AreaPropsWithoutRef = React.AreaHTMLAttributes<HTMLAreaElement>;
export type AudioProps = React.DetailedHTMLProps<React.AudioHTMLAttributes<HTMLAudioElement>, HTMLAudioElement>;
export type AudioPropsWithoutRef = React.AudioHTMLAttributes<HTMLAudioElement>;
export type BaseProps = React.DetailedHTMLProps<React.BaseHTMLAttributes<HTMLBaseElement>, HTMLBaseElement>;
export type BasePropsWithoutRef = React.BaseHTMLAttributes<HTMLBaseElement>;
export type BodyProps = React.DetailedHTMLProps<React.HTMLAttributes<HTMLBodyElement>, HTMLBodyElement>;
export type BodyPropsWithoutRef = React.HTMLAttributes<HTMLBodyElement>;
export type BRProps = React.DetailedHTMLProps<React.HTMLAttributes<HTMLBRElement>, HTMLBRElement>;
export type BRPropsWithoutRef = React.HTMLAttributes<HTMLBRElement>;
export type ButtonProps = React.DetailedHTMLProps<React.ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement>;
export type ButtonPropsWithoutRef = React.ButtonHTMLAttributes<HTMLButtonElement>;
export type CanvasProps = React.DetailedHTMLProps<React.CanvasHTMLAttributes<HTMLCanvasElement>, HTMLCanvasElement>;
export type CanvasPropsWithoutRef = React.CanvasHTMLAttributes<HTMLCanvasElement>;
export type DataProps = React.DetailedHTMLProps<React.DataHTMLAttributes<HTMLDataElement>, HTMLDataElement>;
export type DataPropsWithoutRef = React.DataHTMLAttributes<HTMLDataElement>;
export type DataListProps = React.DetailedHTMLProps<React.HTMLAttributes<HTMLDataListElement>, HTMLDataListElement>;
export type DataListPropsWithoutRef = React.HTMLAttributes<HTMLDataListElement>;
export type DialogProps = React.DetailedHTMLProps<React.DialogHTMLAttributes<HTMLDialogElement>, HTMLDialogElement>;
export type DialogPropsWithoutRef = React.DialogHTMLAttributes<HTMLDialogElement>;
export type DivProps = React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>;
export type DivPropsWithoutRef = React.HTMLAttributes<HTMLDivElement>;
export type DLProps = React.DetailedHTMLProps<React.HTMLAttributes<HTMLDListElement>, HTMLDListElement>;
export type DLPropsWithoutRef = React.HTMLAttributes<HTMLDListElement>;
export type EmbedProps = React.DetailedHTMLProps<React.EmbedHTMLAttributes<HTMLEmbedElement>, HTMLEmbedElement>;
export type EmbedPropsWithoutRef = React.EmbedHTMLAttributes<HTMLEmbedElement>;
export type FieldSetProps = React.DetailedHTMLProps<
React.FieldsetHTMLAttributes<HTMLFieldSetElement>,
HTMLFieldSetElement
>;
export type FieldSetPropsWithoutRef = React.FieldsetHTMLAttributes<HTMLFieldSetElement>;
export type FormProps = React.DetailedHTMLProps<React.FormHTMLAttributes<HTMLFormElement>, HTMLFormElement>;
export type FormPropsWithoutRef = React.FormHTMLAttributes<HTMLFormElement>;
export type HeadingProps = React.DetailedHTMLProps<React.HTMLAttributes<HTMLHeadingElement>, HTMLHeadingElement>;
export type HeadingPropsWithoutRef = React.HTMLAttributes<HTMLHeadingElement>;
export type H1Props = HeadingProps;
export type H1PropsWithoutRef = HeadingPropsWithoutRef;
export type H2Props = HeadingProps;
export type H2PropsWithoutRef = HeadingPropsWithoutRef;
export type H3Props = HeadingProps;
export type H3PropsWithoutRef = HeadingPropsWithoutRef;
export type H4Props = HeadingProps;
export type H4PropsWithoutRef = HeadingPropsWithoutRef;
export type H5Props = HeadingProps;
export type H5PropsWithoutRef = HeadingPropsWithoutRef;
export type H6Props = HeadingProps;
export type H6PropsWithoutRef = HeadingPropsWithoutRef;
export type HeadProps = React.DetailedHTMLProps<React.HTMLAttributes<HTMLHeadElement>, HTMLHeadElement>;
export type HeadPropsWithoutRef = React.HTMLAttributes<HTMLHeadElement>;
export type HRProps = React.DetailedHTMLProps<React.HTMLAttributes<HTMLHRElement>, HTMLHRElement>;
export type HRPropsWithoutRef = React.HTMLAttributes<HTMLHRElement>;
export type HtmlProps = React.DetailedHTMLProps<React.HtmlHTMLAttributes<HTMLHtmlElement>, HTMLHtmlElement>;
export type HtmlPropsWithoutRef = React.HtmlHTMLAttributes<HTMLHtmlElement>;
export type IFrameProps = React.DetailedHTMLProps<React.IframeHTMLAttributes<HTMLIFrameElement>, HTMLIFrameElement>;
export type IFramePropsWithoutRef = React.IframeHTMLAttributes<HTMLIFrameElement>;
export type ImgProps = React.DetailedHTMLProps<React.ImgHTMLAttributes<HTMLImageElement>, HTMLImageElement>;
export type ImgPropsWithoutRef = React.ImgHTMLAttributes<HTMLImageElement>;
export type InputProps = React.DetailedHTMLProps<React.InputHTMLAttributes<HTMLInputElement>, HTMLInputElement>;
export type InputPropsWithoutRef = React.InputHTMLAttributes<HTMLInputElement>;
export type InsProps = React.DetailedHTMLProps<React.InsHTMLAttributes<HTMLModElement>, HTMLModElement>;
export type InsPropsWithoutRef = React.InsHTMLAttributes<HTMLModElement>;
export type DelProps = React.DetailedHTMLProps<React.DelHTMLAttributes<HTMLModElement>, HTMLModElement>;
export type DelPropsWithoutRef = React.DelHTMLAttributes<HTMLModElement>;
export type LabelProps = React.DetailedHTMLProps<React.LabelHTMLAttributes<HTMLLabelElement>, HTMLLabelElement>;
export type LabelPropsWithoutRef = React.LabelHTMLAttributes<HTMLLabelElement>;
export type LegendProps = React.DetailedHTMLProps<React.HTMLAttributes<HTMLLegendElement>, HTMLLegendElement>;
export type LegendPropsWithoutRef = React.HTMLAttributes<HTMLLegendElement>;
export type LIProps = React.DetailedHTMLProps<React.LiHTMLAttributes<HTMLLIElement>, HTMLLIElement>;
export type LIPropsWithoutRef = React.LiHTMLAttributes<HTMLLIElement>;
export type LinkProps = React.DetailedHTMLProps<React.LinkHTMLAttributes<HTMLLinkElement>, HTMLLinkElement>;
export type LinkPropsWithoutRef = React.LinkHTMLAttributes<HTMLLinkElement>;
export type MapProps = React.DetailedHTMLProps<React.MapHTMLAttributes<HTMLMapElement>, HTMLMapElement>;
export type MapPropsWithoutRef = React.MapHTMLAttributes<HTMLMapElement>;
export type MetaProps = React.DetailedHTMLProps<React.MetaHTMLAttributes<HTMLMetaElement>, HTMLMetaElement>;
export type MetaPropsWithoutRef = React.MetaHTMLAttributes<HTMLMetaElement>;
export type ObjectProps = React.DetailedHTMLProps<React.ObjectHTMLAttributes<HTMLObjectElement>, HTMLObjectElement>;
export type ObjectPropsWithoutRef = React.ObjectHTMLAttributes<HTMLObjectElement>;
export type OLProps = React.DetailedHTMLProps<React.OlHTMLAttributes<HTMLOListElement>, HTMLOListElement>;
export type OLPropsWithoutRef = React.OlHTMLAttributes<HTMLOListElement>;
export type OptGroupProps = React.DetailedHTMLProps<
React.OptgroupHTMLAttributes<HTMLOptGroupElement>,
HTMLOptGroupElement
>;
export type OptGroupPropsWithoutRef = React.OptgroupHTMLAttributes<HTMLOptGroupElement>;
export type OptionProps = React.DetailedHTMLProps<React.OptionHTMLAttributes<HTMLOptionElement>, HTMLOptionElement>;
export type OptionPropsWithoutRef = React.OptionHTMLAttributes<HTMLOptionElement>;
export type PProps = React.DetailedHTMLProps<React.HTMLAttributes<HTMLParagraphElement>, HTMLParagraphElement>;
export type PPropsWithoutRef = React.HTMLAttributes<HTMLParagraphElement>;
export type ParamProps = React.DetailedHTMLProps<React.ParamHTMLAttributes<HTMLParamElement>, HTMLParamElement>;
export type ParamPropsWithoutRef = React.ParamHTMLAttributes<HTMLParamElement>;
export type PreProps = React.DetailedHTMLProps<React.HTMLAttributes<HTMLPreElement>, HTMLPreElement>;
export type PrePropsWithoutRef = React.HTMLAttributes<HTMLPreElement>;
export type ProgressProps = React.DetailedHTMLProps<
React.ProgressHTMLAttributes<HTMLProgressElement>,
HTMLProgressElement
>;
export type ProgressPropsWithoutRef = React.ProgressHTMLAttributes<HTMLProgressElement>;
export type BlockQuoteProps = React.DetailedHTMLProps<
React.BlockquoteHTMLAttributes<HTMLQuoteElement>,
HTMLQuoteElement
>;
export type BlockQuotePropsWithoutRef = React.BlockquoteHTMLAttributes<HTMLQuoteElement>;
export type QProps = React.DetailedHTMLProps<React.HTMLAttributes<HTMLQuoteElement>, HTMLQuoteElement>;
export type QPropsWithoutRef = React.HTMLAttributes<HTMLQuoteElement>;
export type CiteProps = React.DetailedHTMLProps<React.HTMLAttributes<HTMLQuoteElement>, HTMLQuoteElement>;
export type CitePropsWithoutRef = React.HTMLAttributes<HTMLQuoteElement>;
export type SlotProps = React.DetailedHTMLProps<React.SlotHTMLAttributes<HTMLSlotElement>, HTMLSlotElement>;
export type SlotPropsWithoutRef = React.SlotHTMLAttributes<HTMLSlotElement>;
export type ScriptProps = React.DetailedHTMLProps<React.ScriptHTMLAttributes<HTMLScriptElement>, HTMLScriptElement>;
export type ScriptPropsWithoutRef = React.ScriptHTMLAttributes<HTMLScriptElement>;
export type NoScriptProps = ScriptProps;
export type NoScriptPropsWithoutRef = ScriptPropsWithoutRef;
export type SelectProps = React.DetailedHTMLProps<React.SelectHTMLAttributes<HTMLSelectElement>, HTMLSelectElement>;
export type SelectPropsWithoutRef = React.SelectHTMLAttributes<HTMLSelectElement>;
export type SourceProps = React.DetailedHTMLProps<React.SourceHTMLAttributes<HTMLSourceElement>, HTMLSourceElement>;
export type SourcePropsWithoutRef = React.SourceHTMLAttributes<HTMLSourceElement>;
export type SpanProps = React.DetailedHTMLProps<React.HTMLAttributes<HTMLSpanElement>, HTMLSpanElement>;
export type SpanPropsWithoutRef = React.HTMLAttributes<HTMLSpanElement>;
export type StyleProps = React.DetailedHTMLProps<React.StyleHTMLAttributes<HTMLStyleElement>, HTMLStyleElement>;
export type StylePropsWithoutRef = React.StyleHTMLAttributes<HTMLStyleElement>;
export type SVGProps = React.SVGProps<SVGSVGElement>;
export type TableProps = React.DetailedHTMLProps<React.TableHTMLAttributes<HTMLTableElement>, HTMLTableElement>;
export type TablePropsWithoutRef = React.TableHTMLAttributes<HTMLTableElement>;
export type ColProps = React.DetailedHTMLProps<React.ColHTMLAttributes<HTMLTableColElement>, HTMLTableColElement>;
export type ColPropsWithoutRef = React.ColHTMLAttributes<HTMLTableColElement>;
export type ColGroupProps = React.DetailedHTMLProps<
React.ColgroupHTMLAttributes<HTMLTableColElement>,
HTMLTableColElement
>;
export type ColGroupPropsWithoutRef = React.ColgroupHTMLAttributes<HTMLTableColElement>;
export type TDProps = React.DetailedHTMLProps<
React.TdHTMLAttributes<HTMLTableDataCellElement>,
HTMLTableDataCellElement
>;
export type TDPropsWithoutRef = React.TdHTMLAttributes<HTMLTableDataCellElement>;
export type THProps = React.DetailedHTMLProps<
React.ThHTMLAttributes<HTMLTableHeaderCellElement>,
HTMLTableHeaderCellElement
>;
export type THPropsWithoutRef = React.ThHTMLAttributes<HTMLTableHeaderCellElement>;
export type TRProps = React.DetailedHTMLProps<React.HTMLAttributes<HTMLTableRowElement>, HTMLTableRowElement>;
export type TRPropsWithoutRef = React.HTMLAttributes<HTMLTableRowElement>;
export type TableSectionProps = React.DetailedHTMLProps<
React.HTMLAttributes<HTMLTableSectionElement>,
HTMLTableSectionElement
>;
export type TableSectionPropsWithoutRef = React.HTMLAttributes<HTMLTableSectionElement>;
export type THeadProps = TableSectionProps;
export type THeadPropsWithoutRef = TableSectionPropsWithoutRef;
export type TBodyProps = TableSectionProps;
export type TBodyPropsWithoutRef = TableSectionPropsWithoutRef;
export type TFootProps = TableSectionProps;
export type TFootPropsWithoutRef = TableSectionPropsWithoutRef;
export type TemplateProps = React.DetailedHTMLProps<React.HTMLAttributes<HTMLTemplateElement>, HTMLTemplateElement>;
export type TemplatePropsWithoutRef = React.HTMLAttributes<HTMLTemplateElement>;
export type TextAreaProps = React.DetailedHTMLProps<
React.TextareaHTMLAttributes<HTMLTextAreaElement>,
HTMLTextAreaElement
>;
export type TextAreaPropsWithoutRef = React.TextareaHTMLAttributes<HTMLTextAreaElement>;
export type TitleProps = React.DetailedHTMLProps<React.HTMLAttributes<HTMLTitleElement>, HTMLTitleElement>;
export type TitlePropsWithoutRef = React.HTMLAttributes<HTMLTitleElement>;
export type TrackProps = React.DetailedHTMLProps<React.TrackHTMLAttributes<HTMLTrackElement>, HTMLTrackElement>;
export type TrackPropsWithoutRef = React.TrackHTMLAttributes<HTMLTrackElement>;
export type ULProps = React.DetailedHTMLProps<React.HTMLAttributes<HTMLUListElement>, HTMLUListElement>;
export type ULPropsWithoutRef = React.HTMLAttributes<HTMLUListElement>;
export type VideoProps = React.DetailedHTMLProps<React.VideoHTMLAttributes<HTMLVideoElement>, HTMLVideoElement>;
export type VideoPropsWithoutRef = React.VideoHTMLAttributes<HTMLVideoElement>;
export type WebViewProps = React.DetailedHTMLProps<React.WebViewHTMLAttributes<HTMLWebViewElement>, HTMLWebViewElement>;
export type WebViewPropsWithoutRef = React.WebViewHTMLAttributes<HTMLWebViewElement>;
// === GENERIC ELEMENTS ===
export type ElementProps = React.DetailedHTMLProps<React.HTMLAttributes<HTMLElement>, HTMLElement>;
export type ElementPropsWithoutRef = React.HTMLAttributes<HTMLElement>;
export type AbbrProps = ElementProps;
export type AbbrPropsWithoutRef = ElementPropsWithoutRef;
export type AddressProps = ElementProps;
export type AddressPropsWithoutRef = ElementPropsWithoutRef;
export type ArticleProps = ElementProps;
export type ArticlePropsWithoutRef = ElementPropsWithoutRef;
export type AsideProps = ElementProps;
export type AsidePropsWithoutRef = ElementPropsWithoutRef;
export type BProps = ElementProps;
export type BPropsWithoutRef = ElementPropsWithoutRef;
export type BDIProps = ElementProps;
export type BDIPropsWithoutRef = ElementPropsWithoutRef;
export type BDOProps = ElementProps;
export type BDOPropsWithoutRef = ElementPropsWithoutRef;
export type CaptionProps = ElementProps;
export type CaptionPropsWithoutRef = ElementPropsWithoutRef;
export type CodeProps = ElementProps;
export type CodePropsWithoutRef = ElementPropsWithoutRef;
export type DDProps = ElementProps;
export type DDPropsWithoutRef = ElementPropsWithoutRef;
export type DetailsProps = ElementProps;
export type DetailsPropsWithoutRef = ElementPropsWithoutRef;
export type DfnProps = ElementProps;
export type DfnPropsWithoutRef = ElementPropsWithoutRef;
export type DTProps = ElementProps;
export type DTPropsWithoutRef = ElementPropsWithoutRef;
export type EmProps = ElementProps;
export type EmPropsWithoutRef = ElementPropsWithoutRef;
export type FigCaptionProps = ElementProps;
export type FigCaptionPropsWithoutRef = ElementPropsWithoutRef;
export type FigureProps = ElementProps;
export type FigurePropsWithoutRef = ElementPropsWithoutRef;
export type FooterProps = ElementProps;
export type FooterPropsWithoutRef = ElementPropsWithoutRef;
export type HeaderProps = ElementProps;
export type HeaderPropsWithoutRef = ElementPropsWithoutRef;
export type HGroupProps = ElementProps;
export type HGroupPropsWithoutRef = ElementPropsWithoutRef;
export type IProps = ElementProps;
export type IPropsWithoutRef = ElementPropsWithoutRef;
export type KbdProps = ElementProps;
export type KbdPropsWithoutRef = ElementPropsWithoutRef;
export type MainProps = ElementProps;
export type MainPropsWithoutRef = ElementPropsWithoutRef;
export type MarkProps = ElementProps;
export type MarkPropsWithoutRef = ElementPropsWithoutRef;
export type MenuProps = ElementProps;
export type MenuPropsWithoutRef = ElementPropsWithoutRef;
export type MeterProps = ElementProps;
export type MeterPropsWithoutRef = ElementPropsWithoutRef;
export type NavProps = ElementProps;
export type NavPropsWithoutRef = ElementPropsWithoutRef;
export type OutputProps = ElementProps;
export type OutputPropsWithoutRef = ElementPropsWithoutRef;
export type PictureProps = ElementProps;
export type PicturePropsWithoutRef = ElementPropsWithoutRef;
export type RPProps = ElementProps;
export type RPPropsWithoutRef = ElementPropsWithoutRef;
export type RTProps = ElementProps;
export type RTPropsWithoutRef = ElementPropsWithoutRef;
export type RubyProps = ElementProps;
export type RubyPropsWithoutRef = ElementPropsWithoutRef;
export type SProps = ElementProps;
export type SPropsWithoutRef = ElementPropsWithoutRef;
export type SampProps = ElementProps;
export type SampPropsWithoutRef = ElementPropsWithoutRef;
export type SectionProps = ElementProps;
export type SectionPropsWithoutRef = ElementPropsWithoutRef;
export type SmallProps = ElementProps;
export type SmallPropsWithoutRef = ElementPropsWithoutRef;
export type StrongProps = ElementProps;
export type StrongPropsWithoutRef = ElementPropsWithoutRef;
export type SubProps = ElementProps;
export type SubPropsWithoutRef = ElementPropsWithoutRef;
export type SummaryProps = ElementProps;
export type SummaryPropsWithoutRef = ElementPropsWithoutRef;
export type SupProps = ElementProps;
export type SupPropsWithoutRef = ElementPropsWithoutRef;
export type TimeProps = ElementProps;
export type TimePropsWithoutRef = ElementPropsWithoutRef;
export type UProps = ElementProps;
export type UPropsWithoutRef = ElementPropsWithoutRef;
export type VarProps = ElementProps;
export type VarPropsWithoutRef = ElementPropsWithoutRef;
export type WBRProps = ElementProps;
export type WBRPropsWithoutRef = ElementPropsWithoutRef;
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment