Skip to content

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
Step-by-step guide: how to use type-challengesInstall, first run, examples, tips and FAQs

How to get it

  1. 1

    Use it in the browser (or self-host)

    Clone the repository

    git clone https://github.com/type-challenges/type-challenges.git
  2. 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. 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

ProjectStarsTypeLevelUpdatedBest for
type-challenges (this)48.6kLearning resourcebeginner11 days agoDevelopers who want to get better at TypeScript generics and conditional types
frontend-challenges15kLearning resourcebeginner27 days agoFront-end developers preparing for job interviews
backend-challenges10kCurated listbeginner9 months agoBackend 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.