9989 - Count Element Number To Object
sunupupup opened this issue · comments
sunupupup commented
type Flatten<T extends any[]> = T extends [infer First, ...infer Rest]
? First extends any[]
? [...Flatten<First>, ...Flatten<Rest>]
: [First, ...Flatten<Rest>]
: [];
type Help<
T extends any[],
Obj extends { [k: PropertyKey]: any[] } = { [P in T[number]]: [] }
> = T extends [
infer First extends PropertyKey,
...infer Rest extends PropertyKey[]
]
? Help<
Rest,
{
[K in keyof Obj]: K extends First ? [...Obj[K], 1] : Obj[K];
}
>
: Obj;
type CountElementNumberToObject<Arr extends any[]> = {
[K in keyof Help<Flatten<Arr>>]: Help<Flatten<Arr>>[K]["length"];
};