Next.js 15自定义API路由部署/构建时出现类型错误
问题解决:NextJS 15 API路由Build时报参数类型错误
NextJS 15对App Router下的API路由参数类型校验更严格,你用Record<string, string>定义params的方式不符合build时的类型检查要求,而dev模式下校验宽松所以没报错。
直接修改params的类型定义即可,因为你的路由是[projectId],所以params里明确只有projectId这个字符串字段,把类型改成具体结构:
修改后的完整代码:
import { NextRequest, NextResponse } from 'next/server'; import { supabase } from '@/lib/supabase'; export async function GET( request: NextRequest, { params }: { params: { projectId: string } } ) { try { const projectId = params.projectId; const { data, error } = await supabase .from('activity_log') .select('*') .eq('project_id', projectId) .order('timestamp', { ascending: false }); if (error) throw error; return NextResponse.json({ activities: data }); } catch (error) { return NextResponse.json({ error: 'Failed to fetch activity log' }, { status: 500 }); } }
这样修改后,build时的类型错误就会消失。原理是NextJS 15要求API路由的params类型必须和路由中定义的动态参数完全匹配,不能用宽泛的Record类型。
内容的提问来源于stack exchange,提问作者Up North Media
相关产品推荐
相关产品推荐

