typescript 哪里有sveltekit加载类型?特别是Fetch?

ztmd8pv5  于 2022-11-18  发布在  TypeScript
关注(0)|答案(1)|浏览(118)

在Sveltekit中,我使用load函数调用API,我想使用传递给load函数的Fetch--但我使用的是Typescript。
fetch/params/ etc的类型在哪里?

/** @type {import('./$types').PageLoad} */
export async function load ({fetch}) {

  const rndInt = randomIntFromInterval(1, 20)

  const res = await fetch(`https://jsonplaceholder.typicode.com/todos/${rndInt}`)
  item = await res.json();

  return {item}
}
8fq7wneg

8fq7wneg1#

这只是将类型应用于load函数的问题,它的组成部分在哪里定义并不重要。唯一重要的是./$types将由dev服务器生成,该服务器必须运行才能正确更新。
要将类型应用于函数,最简单的方法是将其定义为const

export const load: PageLoad = ({ fetch }) => {
    // fetch will have the correct type here automatically
}

自动生成的类型位于.svelte-kit/types/src/routes/...中,层次结构将使用实际的源代码镜像routes目录,从而允许./$types导入。
(The基类型在@sveltejs/kit包中定义,请参见node_modules\@sveltejs/kit/types/index.d.ts。如果您的编辑器支持“Go to definition”命令,则可以使用该命令进行导航。在PageLoad和/或Kit.Load上调用它,然后查看一下。)

相关问题