How to achieve type safety in this scenario?

I have the following routes:
/route/$id/tab1
/route/$id/tab2
/route/$id/tab3

I have the following hook:

const tabs = ['tab1', 'tab2', tab3'] as const;

export function useCurrentTab() {
const currentTab = useRouterState({
select: (state) => state.location.pathname.split('/').at(-1),
}) as (typeof tabs)[number] | undefined;

return [currentTab && tabs.includes(currentTab) ? currentTab : tabs[0], tabs] as const;
}

I want to avoid casting the current tab to as (typeof tabs)[number] | undefined;
Was this page helpful?