使用Svelte RequestHandler创建API端点遇类型错误求助
解决Svelte Kit API端点RequestHandler类型错误问题
问题原因
你写的代码返回的是普通对象{body: string; status: number},但Svelte Kit的RequestHandler要求返回值必须是标准的Response实例(或Promise包裹的Response),普通对象缺少Response类型必需的headers、ok等属性,因此触发TypeScript类型错误。
解决方案1:使用Svelte Kit内置的json函数(推荐)
导入@sveltejs/kit提供的json辅助函数,它会自动构造符合要求的Response对象,同时处理Content-Type等响应头:
import type { RequestHandler } from '@sveltejs/kit'; import { json } from '@sveltejs/kit'; export const get: RequestHandler = () => { return json('Hello from api.', { status: 200 }); };
解决方案2:手动构造Response实例
如果不想用辅助函数,可以直接创建标准的Response对象,明确指定响应头和状态码:
import type { RequestHandler } from '@sveltejs/kit'; export const get: RequestHandler = () => { return new Response(JSON.stringify('Hello from api.'), { status: 200, headers: { 'Content-Type': 'application/json; charset=utf-8' } }); };
验证
修改后启动项目,访问对应API路径(比如/api,因为你的文件是index.json.ts),即可正常获取响应。
内容的提问来源于stack exchange,提问作者Idan Zehavi
相关产品推荐
相关产品推荐

