This commit is contained in:
JOLIMAITRE Matthieu 2024-08-07 10:17:45 +02:00
commit 8c18398ae4
6 changed files with 111 additions and 0 deletions

13
lib/types.ts Normal file
View file

@ -0,0 +1,13 @@
// deno-lint-ignore no-explicit-any
export type PairElts<A extends any[]> =
A extends [] ? [] :
A extends [infer _F] ? [] :
A extends [infer _F, infer S, ...infer R] ? [S, ...PairElts<R>] :
never;
export type StructOfArr<A extends string[], V> =
// deno-lint-ignore ban-types
A extends [] ? {} :
A extends [infer K extends string, ...infer R extends string[]] ? { [key in K]: V } & StructOfArr<R, V> :
never;