Chapters

  • 0. Introduction

    Free

  • 1. Types & Values

    Free

  • 2. Types are just data

    Free

  • 3. Objects & Records

    Free

  • 4. Arrays & Tuples

    Free

  • 5. Conditional Types
  • 6. Loops with Recursive Types
  • 7. Template Literal Types
  • 8. The Union Type Multiverse
  • 9. Loops with Mapped Types
  • 10. Assignability Quiz
  • 11. Designing Type-Safe APIs
  • 12. Conclusion

Articles

Subscribe

About

Made with ❤️ by @GabrielVergnaud

|Chapters|Articles

Hi 👋

I'm Gabriel!

I build data visualizations 📈 at Datadog and I'm the author and maintainer of TS-Pattern, the most popular pattern matching library for TypeScript, which makes heavy use of type-level programming techniques.

I started TS-Pattern as an experiment to see how far the type system of TypeScript could go, and boy, I didn't expect it could go that far. I discovered a full-fledged programming language with its own concepts and logic. What felt like magic at the beginning started to make sense. I could predict how my complex types would behave — my mental model was getting better and better.

The thing is that few people understand the extent of what TypeScript can do. The type-level language isn't more complicated than any other programming language, but most people don't consider types as a language and that's why they don't learn it properly.

It's time for this to change! I hope Type-level TypeScript will help spread type-level programming knowledge in the TypeScript community!

Find me online!

On 𝕏 / Twitter 👉 @GabrielVergnaud

On GitHub 👉 @gvergnaud

If you enjoy Type-level TypeScript, consider sponsoring my work on GitHub!