type DotPrefix = T extends '' ? '' : `.${T}`; export type NestedKeyOf = (T extends object ? { [K in Exclude]: `${K}${DotPrefix>}`; }[Exclude] : '') extends infer D ? Extract : never; export type ArrayElement = ArrayType extends readonly (infer ElementType)[] ? ElementType : never; export type Mutable = { -readonly [P in keyof T]: T[P]; }; export type PartialBy = Omit & Partial>; export {};