<RouteGroup>.has
tsx
<RouteGroup>.has(route: Route): boolean
The has function is the only property on the RouteGroup object returned by the createGroup function. It takes a route and returns a boolean.
Example
tsx
import { defineRoute, createRouter, createGroup, param } from "type-route";
const user = defineRoute(
{
userId: param.path.string,
},
(p) => `/user/${p.userId}`
);
const { routes } = createRouter({
home: defineRoute("/"),
user,
userSettings: user.extend("/settings"),
userActivity: user.extend("/activity"),
});
const groups = {
user: createGroup([routes.user, routes.userSettings, routes.userActivity]),
};
if (groups.user.has(route)) {
console.log(route.params.userId);
}
In addition to taking a route and returning a boolean, has works with TypeScript's control flow analysis to properly narrow type of the given route in the appropriate code blocks. In the above example this means you can be sure route.params.userId exists within this code block:
tsx
if (groups.user.has(route)) {
console.log(route.params.userId);
}