fui-fancyui
Version:
FancyUI Libary
12 lines (11 loc) • 501 B
TypeScript
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 {};