
type-challenges
A set of TypeScript type puzzles with an online judge to check your answers.
- Stars
- 48.6k
- Forks
- 5.3k
- Licence
- MIT
- Language
- TypeScript
- Last update
- 11 days ago
- Type
- Learning resource
What it is
type-challenges is a collection of TypeScript type-level exercises, grouped by difficulty (warm-up, easy, medium and more), where you write a type that makes a test pass. The README says it is meant to help you understand how the TypeScript type system works, write your own utility types, or just have fun. It also includes an online judge and a community space for questions.
- Work through the warm-up and easy challenges to learn core type utilities like Pick, Readonly and Exclude
- Solve medium challenges such as Trim, Capitalize or Flatten to practice string and array types
- Check your solutions with the online judge instead of a local setup
- Use the challenges as a reference for how common utility types are built
Great for
- Developers who want to get better at TypeScript generics and conditional types
- Students learning how the TypeScript type system works
- Developers who like puzzle-style practice with immediate feedback
- Teams preparing to write their own shared utility types
Not ideal for
- People who only want ready-made utility types for production code; the README points to libraries like type-fest for that
- Complete beginners to TypeScript, since the challenges assume working knowledge of the language
- Anyone looking for a runnable application or library to install into a project
How to get it
- 1
Use it in the browser (or self-host)
Clone the repository
git clone https://github.com/type-challenges/type-challenges.git - 2
Run it
- Open https://tsch.js.org/ in your browser
- Pick a challenge from the list, such as the warm-up Hello World
- Write your type in the provided file or the online judge
- Run the judge to check your answer
- 3
Get the most out of it
- Use the TypeScript Playground plugin linked in the README to solve challenges in the browser
- Join the Discord linked in the README to ask questions and compare solutions
- Read the challenge READMEs for the expected behavior before you start
- Compare your answer with other solutions after you finish one
Downloads
Strengths
- Large set of challenges, with a README listing well over a hundred medium-level entries
- Organized by difficulty, so you can progress step by step
- Each challenge links to its own README with details
Trade-offs
- The README is truncated in what was provided, so the full challenge list and judge details were not verified
- It is a practice collection rather than software you run, so its value depends on how much you invest in solving puzzles
- The README notes that challenges work in TypeScript strict mode, which may require adjusting your habits
How it compares
| Project | Stars | Type | Level | Updated | Best for |
|---|---|---|---|---|---|
| type-challenges (this) | 48.6k | Learning resource | beginner | 11 days ago | Developers who want to get better at TypeScript generics and conditional types |
| frontend-challenges | 15k | Learning resource | beginner | 27 days ago | Front-end developers preparing for job interviews |
| backend-challenges | 10k | Curated list | beginner | 9 months ago | Backend developers preparing for technical interviews |
Stats synced from GitHub. The assessment above was drafted with AI from the project's README on 2026-10-29 and may miss recent changes — check the README before relying on a command. MIT licence: free to use, modify and distribute, including commercially, as long as you keep the copyright notice.