blob: ae17c2c35cb2ba74aac4619d89633859da62b1dd (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
export type AddStrings<
Strings extends readonly string[],
Carry extends string = ""
> = Strings extends [infer Head extends string, ...infer Tail extends string[]]
? AddStrings<Tail, `${Carry}${Head}`>
: Carry;
export type ToString<T, Carry extends string = ""> = T extends
| string
| number
| boolean
? `${T}`
: T extends readonly any[]
? T extends readonly [infer Head, ...infer Tail]
? `${ToString<
Tail,
`${Carry extends "" ? "" : `${Carry}, `}${ToString<Head>}`
>}`
: `[${Carry}]`
: never;
|