sveltejs/kit

Add $routes type alias

Geschlossen

#13.517 geöffnet am 28.02.2025

 (2 Kommentare) (2 Reaktionen) (0 zugewiesene Personen)JavaScript (1.719 Forks)batch import
feature / enhancementhelp wantedneeds-decision

Repository-Metriken

Stars
 (17.446 Sterne)
PR-Merge-Metriken
 (Durchschn. Merge 17T 22h) (184 gemergte PRs in 30 T)

Beschreibung

Describe the problem

I'd love to use route data directly in $lib/components instead of passing props to reduce type boilerplate. This is possible with page.data from $app/state, but it lacks proper types, requiring manual type assertions:

import { page } from '$app/state';
import type { PageData } from "../../routes/listings/$types";

const { carsCount } = $derived(page.data as PageData)

The main challenge is importing the correct PageData type, especially in deeply nested components and routes - path can quickly become cumbersome.

Describe the proposed solution

I'd love to have $routes alias which points directly to generated route types so I can use it in any part of the app:

import { page } from '$app/state';
import type { PageData } from "$routes/listings/$types";

const { carsCount } = $derived(page.data as PageData)

It's already working by providing alias in svelte.config.js:

export default {
  kit: {
    alias: {
      $routes: '.svelte-kit/types/src/routes'
    }
  }
}

Would be nice to have it right of the box 🥳

Alternatives considered

Some generic with route path param would also be fine

Importance

would make my life easier

Additional Information

No response

Contributor Guide