diff options
| author | Kai Stevenson <kai@kaistevenson.com> | 2025-11-05 01:20:07 -0800 |
|---|---|---|
| committer | Kai Stevenson <kai@kaistevenson.com> | 2025-11-06 20:28:00 -0800 |
| commit | d8a969e231135978c4dd1fa67559101f506ad6f3 (patch) | |
| tree | 7a556db33abe541fa3f5902690ca93d782c0ecc7 /src/lang/ts-lang/util/number.ts | |
| parent | e86c68dffaffee6ba44d98ba06761245f6d5b670 (diff) | |
recursion works for types with depth limit 5
Diffstat (limited to 'src/lang/ts-lang/util/number.ts')
| -rw-r--r-- | src/lang/ts-lang/util/number.ts | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/src/lang/ts-lang/util/number.ts b/src/lang/ts-lang/util/number.ts index 6e4e360..2fa6d85 100644 --- a/src/lang/ts-lang/util/number.ts +++ b/src/lang/ts-lang/util/number.ts @@ -20,6 +20,18 @@ export type AddNumbers<Numbers extends readonly number[]> = ? T["length"] : never; +export type SubNumbersInternal< + MS extends readonly unknown[], + NS extends readonly unknown[] +> = MS extends readonly [...NS, ...infer Tail] ? Tail : never; + +export type SubNumbers<M extends number, N extends number> = SubNumbersInternal< + NumberToArray<M>, + NumberToArray<N> +> extends infer T extends readonly any[] + ? T["length"] + : never; + export type MultiplyInner< N extends number, MS extends readonly any[], |
