import { QInputProps } from "quasar"; type QInputType = NonNullable; type WithKnownType< TElement extends HTMLInputElement | HTMLTextAreaElement, TType extends QInputType > = Omit & { type: TType }; /** * @example * ```ts * QInputNativeElement // HTMLInputElement | HTMLTextAreaElement * QInputNativeElement<"textarea"> // HTMLTextAreaElement * QInputNativeElement<"text"> // Omit & { type: "text" } * QInputNativeElement<"text" | "number"> // Omit & { type: "text" | "number" } * QInputNativeElement<"text" | "textarea"> // (Omit & { type: "text" }) | HTMLTextAreaElement * ``` */ export type QInputNativeElement = T extends "textarea" ? WithKnownType : Omit, "files"> & { files: T extends "file" ? FileList : null; };