@plone/types
Version:
Plone's Types Package
13 lines (11 loc) • 327 B
TypeScript
/**
* Get the type of the elements in an array
*/
export type ArrayElement<A> = A extends readonly (infer T)[] ? T : never;
export type RequireAtLeastOne<T, Keys extends keyof T = keyof T> = Pick<
T,
Exclude<keyof T, Keys>
> &
{
[K in Keys]-?: Required<Pick<T, K>> & Partial<Pick<T, Exclude<Keys, K>>>;
}[Keys];