Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

8640 - Number Range #30895

Open
Kakeru-Miyazaki opened this issue Nov 26, 2023 · 0 comments
Open

8640 - Number Range #30895

Kakeru-Miyazaki opened this issue Nov 26, 2023 · 0 comments
Labels
8640 answer Share answers/solutions to a question en in English

Comments

@Kakeru-Miyazaki
Copy link

// your answers
type UnionFromNumber<L extends number, Ans extends unknown[] = []> =  Ans["length"] extends L ? Ans[number] : UnionFromNumber<L, [...Ans, Ans["length"]]>

type NumberRange<L extends number, H extends number> = Exclude<UnionFromNumber<H>, UnionFromNumber<L>> | H

UnionFromNumber<L> generates a union type of 0 | 1 | ... | L-1. Therefore, using Exclude<UnionFromNumber<H>, UnionFromNumber<L>> yields a type of H | H + 1 | ... | L-2 | L-1. To include L in the type, we simply append L at the end.

@Kakeru-Miyazaki Kakeru-Miyazaki added answer Share answers/solutions to a question en in English labels Nov 26, 2023
@github-actions github-actions bot added the 8640 label Nov 26, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
8640 answer Share answers/solutions to a question en in English
Projects
None yet
Development

No branches or pull requests

1 participant