From e9f3c782bc10d4c5c44faf768aa60cd6bcc66574 Mon Sep 17 00:00:00 2001 From: Kai Stevenson Date: Sun, 2 Nov 2025 18:08:16 -0800 Subject: refactor --- src/lang/util/string.ts | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 src/lang/util/string.ts (limited to 'src/lang/util/string.ts') diff --git a/src/lang/util/string.ts b/src/lang/util/string.ts new file mode 100644 index 0000000..5772f40 --- /dev/null +++ b/src/lang/util/string.ts @@ -0,0 +1,17 @@ +export type AddStrings< + Strings extends readonly string[], + Carry extends string = "" +> = Strings extends [infer Head extends string, ...infer Tail extends string[]] + ? AddStrings + : Carry; + +export type ToString = T extends string | number + ? `${T}` + : T extends readonly any[] + ? T extends readonly [infer Head, ...infer Tail] + ? `${ToString< + Tail, + `${Carry extends "" ? "" : `${Carry}, `}${ToString}` + >}` + : `[${Carry}]` + : never; -- cgit v1.2.3-70-g09d2