UNPKG

fui-fancyui

Version:
12 lines (11 loc) 501 B
type StringKeys<T> = Extract<keyof T, string>; type RequiredKeysOfSubset<T, U extends StringKeys<T>> = { [K in U]: undefined extends T[K] ? never : K; }[U]; type OptionalKeysOfSubset<T, U extends StringKeys<T>> = Exclude<U, RequiredKeysOfSubset<T, U>>; export type TStyledPrefixAndPicker<T extends Record<string, any>, U extends StringKeys<T> = StringKeys<T>> = { [P in RequiredKeysOfSubset<T, U> as `$${P}`]: T[P]; } & { [P in OptionalKeysOfSubset<T, U> as `$${P}`]?: T[P]; }; export {};