Template Literal Types
Typed API Routes
A route type can require strings to follow the path shape used by an application.
Typed API Routes
routes.ts
type ApiVersion = "v1" | "v2";
type Resource = "users" | "orders";
type ApiRoute = `/api/${ApiVersion}/${Resource}`;
function describeRoute(route: ApiRoute): string {
const parts: string[] = route.split("/");
return `${parts[2]} ${parts[3]}`;
}
const version: ApiVersion = ;
const resource: Resource = "users";
const route: ApiRoute = `/api/${version}/${resource}`;
console.log(describeRoute(route));
type ApiVersion = "v1" | "v2";
type Resource = "users" | "orders";
type ApiRoute = `/api/${ApiVersion}/${Resource}`;
function describeRoute(route: ApiRoute): string {
const parts: string[] = route.split("/");
return `${parts[2]} ${parts[3]}`;
}
const version: ApiVersion = ;
const resource: Resource = "users";
const route: ApiRoute = `/api/${version}/${resource}`;
console.log(describeRoute(route));
route type
Template literal types can describe valid URL path patterns without accepting every string.