import { HTMLAttributes, Ref } from 'react' // opposite of NonNullable export type Nullable = T | null | undefined export type WithRef, T> = E & { ref?: Ref } export type UnionToIntersection = (U extends any ? (k: U) => void : never) extends ((k: infer I) => void) ? I : never export type RecursiveRequired = { [P in keyof T]-?: T[P] extends object | undefined ? Exclude, undefined> : T[P] }