我是 Svelte 和 TypeScript 的新手。我正在 SvelteKit 中编写我的第一个应用程序,并尝试创建一个在其路由中具有整数参数的页面。
路由结构
\src
\app.d.ts
\params
\integer.ts
\routes
\posts
\[id=integer]
\+page.server.ts
\+page.svelte
app.d.ts
declare namespace App {
interface Locals {
accessToken: string | null,
}
}
page.server
export function load({ params }) {
return {
id: params.id
};
}
page.svelte
<script lang="ts">
export let data;
</script>
<h1>{data.id}</h1>
VS Code 抱怨
page.svelte
,特别是 data.id
未定义,它将 data
对象的类型推断为 { accessToken: string | null}
当我导航到该页面时,该页面可以正常工作,但我想消除类型错误。
呃...我明白了...路线参数来自
$page
存储,而不是 LayoutServerLoad
数据。
我将
page.svelte
更新为
<script lang="ts">
import { page } from '$app/stores';
</script>
<h1>{$page.params.id}</h1>
一切正常,没有 VSCode 错误,也没有不必要的服务器功能。