All Articles

TypeScript 5.0 has landed!

Matt Pocock
Matt PocockMatt is a well-regarded TypeScript expert known for his ability to demystify complex TypeScript concepts.

TypeScript 5.0 has made it to Total TypeScript!

It brought a lot of improvements - you can learn all about it in our 5.0 breakdown.

The most exciting feature for Total TypeScript was const type parameters.

It lets you specify a type parameter as const - meaning that everything that gets passed to that parameter gets inferred as if it were as const.

const routes = <const TRoutes>( routes: TRoutes ) => { return routes; }; const myRoutes = routes({ user: "/user", createUser: "/user/create", }); Object.values(myRoutes); // ['/user', '/user/create'] // Before 5.0, myRoutes would be inferred as string[] 

Before 5.0, you needed to use a hack in TypeScript to get this behaviour - the F.Narrow type helper from ts-toolbelt. I even taught this in Total TypeScript!

No longer - I've re-recorded 3 exercises in TT's Advanced Patterns workshop to take advantage of const type annotations.

I can't wait to see what you build with them!

Matt's signature

Share this article with your friends

`any` Considered Harmful, Except For These Cases

Discover when it's appropriate to use TypeScript's any type despite its risks. Learn about legitimate cases where any is necessary.

Matt Pocock
Matt Pocock