Skip to content

SplitProps

type SplitProps<T, K extends (readonly (keyof T)[])[]> = [
...{
[P in keyof K]: P extends `${number}` ? Pick<T, Extract<K[P], readonly (keyof T)[]>[number]> : never;
},
{
[P in keyof T as Exclude<P, K[number][number]>]: T[P];
}
];