type StringKeys = Extract; type RequiredKeys = { [K in StringKeys]: undefined extends T[K] ? never : K; }[StringKeys]; type OptionalKeys = Exclude, RequiredKeys>; type RequiredKeysAfterOmit> = Exclude, U>; type OptionalKeysAfterOmit> = Exclude, U>; export type TStyledPrefixAndOmiter, U extends StringKeys = never> = { [P in RequiredKeysAfterOmit as `$${P}`]: T[P]; } & { [P in OptionalKeysAfterOmit as `$${P}`]?: T[P]; }; export {};