SplitProps
export 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];
}
];