diff options
Diffstat (limited to 'src/ts-lang/util/number.ts')
| -rw-r--r-- | src/ts-lang/util/number.ts | 37 |
1 files changed, 0 insertions, 37 deletions
diff --git a/src/ts-lang/util/number.ts b/src/ts-lang/util/number.ts deleted file mode 100644 index 6e4e360..0000000 --- a/src/ts-lang/util/number.ts +++ /dev/null @@ -1,37 +0,0 @@ -export type NumberToArray< - Number extends number, - Carry extends readonly any[] = [] -> = Number extends Carry["length"] - ? Carry - : NumberToArray<Number, [...Carry, any]>; - -export type NumbersToArray< - Numbers extends readonly number[], - Carry extends readonly any[] = [] -> = Numbers extends [ - infer Head extends number, - ...infer Tail extends readonly number[] -] - ? NumbersToArray<Tail, [...Carry, ...NumberToArray<Head>]> - : Carry; - -export type AddNumbers<Numbers extends readonly number[]> = - NumbersToArray<Numbers> extends infer T extends readonly any[] - ? T["length"] - : never; - -export type MultiplyInner< - N extends number, - MS extends readonly any[], - Carry extends number = 0 -> = MS extends [infer Head extends number, ...infer Tail extends readonly any[]] - ? MultiplyInner<N, Tail, AddNumbers<[Carry, N]>> - : Carry; - -export type Multiply<M extends number, N extends number> = MultiplyInner< - M, - NumberToArray<N> ->; - -export type ExtractNumber<T extends any> = - T extends `${infer Inner extends number}` ? Inner : never; |
