UNPKG

fui-fancyui

Version:
14 lines (13 loc) 626 B
type StringKeys<T> = Extract<keyof T, string>; type RequiredKeys<T> = { [K in StringKeys<T>]: undefined extends T[K] ? never : K; }[StringKeys<T>]; type OptionalKeys<T> = Exclude<StringKeys<T>, RequiredKeys<T>>; type RequiredKeysAfterOmit<T, U extends StringKeys<T>> = Exclude<RequiredKeys<T>, U>; type OptionalKeysAfterOmit<T, U extends StringKeys<T>> = Exclude<OptionalKeys<T>, U>; export type TStyledPrefixAndOmiter<T extends Record<string, any>, U extends StringKeys<T> = never> = { [P in RequiredKeysAfterOmit<T, U> as `$${P}`]: T[P]; } & { [P in OptionalKeysAfterOmit<T, U> as `$${P}`]?: T[P]; }; export {};