TypeScript 5.0 has landed!

Matt Pocock
Matt Pocock

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

Strongly Typing React Props with TypeScript

When typing React props in a TypeScript app, using interfaces is recommended, especially when dealing with complex intersections of props.

Matt Pocock
Matt Pocock