Type-Level TypeScript (original) (raw)
Learn how to unleash the full potential of the Turing Complete type systemof TypeScript!
Introduction
Type-level TypeScript is an online course to take your TypeScript skills from intermediate to advanced. It will give you a solid understanding of the type system's fundamentals and guide you through its most advanced features. You will find everything you need to become a TypeScript Expert — not only in-depth content, but also fun challenges to practice your new skills, like this one right here.
Let's see if you can solve it!
Congratulation! 🎉
Over the years, the type system of TypeScript has grown from basic type annotations to a large and complex programming language.
If you have ever looked into the code of an open-source library you may have found types that looked intimidating and foreign, like some esoteric language coming from another planet. Library code often needs to be much more abstract than the code we are used to writing; that's why it makes extensive usage of advanced TypeScript features such as Generics, Conditional Types, Mapped Types or even Recursive Types.
I mastered these concepts while working on TS-Pattern, a widely-used open-source library that has the particularity of being extremely hard to type. In this course, I hope to share what I've learned by reading too much source code and tinkering for hundreds of hours with the type system.
Types are awesome.
Not only can good types catch your mistakes and typos, but they also make you more proficient by documenting your code and providing you with smart suggestions. The more your types know about your code, the better they are at helping you!
Once you're fluent in the language of types, everything becomes possible. You will be able to quickly build the abstractions you need, and stop feeling like the type system is getting in your way.
Wish you had a type-safe navigate
function that'd make sure your route parameters are correct?Here you go 👇
This isn't magic. The type system is just a real programming language!
To get better at this, you first need to acknowledge that TypeScript's type system is a full-fledged programming language in itself! It's more than worth learning its fundamentals, just like you would with any other new programming language.
Throughout this course, I'll try to show the correspondence between programming concepts you already know like code branching, variable assignment, loops and data structures, and their type-level equivalent.
By assembling these building blocks, you will be able to create powerful type-level algorithms that make sure the abstractions you create are always used properly in your entire codebase.
Let's take your TypeScript skills to the next level!
Finally, we will discuss the tradeoffs of moving more of your code complexity to the type level. We will talk about compile time performance, type errors, type-level debugging and other challenges of type-level programming. It will help you reflect and take the right decision when using these techniques.
This course isn't a collection of TypeScript tricks! I believe that building a good mental model of the fundamentals is more empowering because it will help you solve problems we haven't covered. Knowing a few tricks can only get you so far, but mastering the building blocks of the language and the way they interact together will enable you to solve your real-world problems.
Don't take my word for it.
So much recommended: type-level-typescript.com/05-conditional…I'm feeling complicated emotions after reading this installment. Why (WHY!) has no one explained `infer` to me like this before!? For me `infer` has been something I randomly fumble around with until things "work" because … magic?
This is sooooo good. If you're already solid at TS, this will take you to the next level. Bravo
Gabriel Vergnaud
@GabrielVergnaud
SO excited to finally announce... 🔥 Type-Level TypeScript 🔥 The type system of #TypeScript is a *real* programming language. Here is an online course to discover its most advanced features and how to unleash its full potential! 👉 type-level-typescript.com 🎉 Learn more 🧵👇
I'm using Typescript everyday since almost ~7 years now. And I was struggling with `infer` keyword everytime I was crossing its path. But thanks to @GabrielVergnaud chapter 5 on type-level-typescript.com/05-conditional…, I finally understood how it is working for real. Thanks a lot for that !
🚨🔥 Just want to give big endorsement for type-level-typescript.com "Level TypeScript" by @GabrielVergnaudSpending the money on this course was 1000% worth it and super valuable on my day-to-day work! 😍 Go use your learning budget at work and take this course! 🚨🚨🤯
💯 worth your money 💰
Gabriel Vergnaud
@GabrielVergnaud
Huge Type-Level TypeScript News: Not one, but TWO new Chapters have been released🎉 nº6 🔥Loops With Recursive Types🔥 & nº7 ✨Template Literal Types✨ You'll learn how to use type-level loops and the `infer` keyword to build functions with super smart type inference! 🧵👇
type-level-typescript.com is very well-done, and helpful if (like me) you came to TypeScript organically, without giving much thought to what the types expressed. Nice work, @GabrielVergnaud! Looking forward to additional chapters.
This is an amazing learning resource. Go ahead and check the content and be sure to become and early supporter!
Gabriel Vergnaud
@GabrielVergnaud
Huge Type-Level TypeScript News: Not one, but TWO new Chapters have been released🎉 nº6 🔥Loops With Recursive Types🔥 & nº7 ✨Template Literal Types✨ You'll learn how to use type-level loops and the `infer` keyword to build functions with super smart type inference! 🧵👇
Heavily recommends this course! It'll blow your mind! :)
Gabriel Vergnaud
@GabrielVergnaud
Huge Type-Level TypeScript News: Not one, but TWO new Chapters have been released🎉 nº6 🔥Loops With Recursive Types🔥 & nº7 ✨Template Literal Types✨ You'll learn how to use type-level loops and the `infer` keyword to build functions with super smart type inference! 🧵👇
I rather like @GabrielVergnaud's take on teaching #TypeScript at type-level-typescript.com. This approach works pretty well at making a number of fundamentals "click" that are otherwise often misunderstood. GG Gabriel! Looking forward to the upcoming chapters!
Like a month ago, I shared this course with my team at an internal lightning talk, adding that this is so good that it could be paid for. 🙃 So I am not surprised at all that the newest chapters require a subscription. Honestly recommend type-level-typescript.com 🚀@GabrielVergnaud
I definitely recommend this course if you are working with TypeScript! The instructor takes you step by step and you don't realize when complex code finally becomes understandable!
Gabriel Vergnaud
@GabrielVergnaud
type-level-typescript.com
Let's get started!
Enroll in Type-Level TypeScript!
Get access to all chapters of the Type-Level TypeScript course and join a community of 1600+ students!
You will find everything you need to become a TypeScript Expert — 12 chapters of in-depth, unique content, and more than 70 fun challenges to practice your new skills.
- Full access to all 12 chapters
- 70 type challenges with explanations
- Lifetime access to all course materials
- Exclusive discord community
Loading...