type-challenges / type-challenges

Collection of TypeScript type challenges with online judge

Home Page:https://tsch.js.org/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

8640 - Number Range

sunupupup opened this issue · comments

type NumberToArr<
  N extends number,
  Arr extends any[] = []
> = Arr["length"] extends N ? Arr : NumberToArr<N, [...Arr, any]>;

type NumberRange<
  Start extends number,
  End extends number,
  StartArr extends any[] = NumberToArr<Start>,
  EndArr extends any[] = NumberToArr<End>,
  Ret extends number[] = []
> = StartArr["length"] extends EndArr["length"] 
                       ? [...Ret, StartArr["length"]][number]
                       : NumberRange<Start, End, [...StartArr, any], EndArr, [...Ret, StartArr["length"]]>