Require at least one type
type RequireAtLeastOne<T, Keys extends keyof T = keyof T> =
Keys extends keyof T
? Required<Pick<T, Keys>> & Partial<Omit<T, Keys>>
: never;
type LinkCore = {
href?: string;
imagesrcset?: string;
};
interface Link extends HTMLElementInterfaceCreator<HTMLLinkElement, "link"> {
attributes:
RequireAtLeastOne<LinkCore, "href" | "imagesrcset">
& Partial<Record<
| "crossorigin"
| "rel"
| "media"
| "integrity"
| "hreflang"
| "type"
| "referrerpolicy"
| "sizes"
| "imagesizes"
| "as"
| "blocking"
| "color"
| "disabled"
| "fetchpriority"
| "title",
string
>>
& Partial<MapAttributesGlobal>
}
Enforces at least one of href or imagesrcset
Allows both