13 lines
443 B
TypeScript
13 lines
443 B
TypeScript
|
|
// 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;
|