为什么路由参数会导致 VS Code 出现类型错误?

问题描述 投票:0回答:1

我是 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}

当我导航到该页面时,该页面可以正常工作,但我想消除类型错误。

typescript routes sveltekit
1个回答
0
投票

呃...我明白了...路线参数来自

$page
存储,而不是
LayoutServerLoad
数据。

我将

page.svelte
更新为

<script lang="ts">
  import { page } from '$app/stores'; 
</script>

<h1>{$page.params.id}</h1>

一切正常,没有 VSCode 错误,也没有不必要的服务器功能。

© www.soinside.com 2019 - 2024. All rights reserved.