You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Next.js 15动态API路由[id]出现“Invalid GET Export”构建错误

Next.js 15 App Router动态API路由构建TypeScript错误解决方法

我在使用Next.js 15的App Router开发/app/api/agencies/[id]动态API路由时,执行npm run build遇到以下TypeScript错误:

Type error: Route "src/app/api/agencies/[id]/route.ts" has an invalid "GET" export:
Type "{ params: { id: string; }; }" is not a valid type for the function's second argument.

尝试过修改函数签名、更换params类型、调整tsconfig等方法均无效,以下是可行的解决思路:


解决方案1:使用Next.js官方提供的路由参数类型

Next.js App Router的路由上下文参数有官方预定义的类型,直接自定义{ params: { id: string } }会导致类型不匹配。正确的做法是导入next/server中的Params类型来约束参数结构:

  1. 导入Params类型:
import { NextRequest, NextResponse, Params } from "next/server";
  1. 修改GET函数的签名,用泛型指定参数结构:
export async function GET(
  req: NextRequest,
  { params }: { params: Params<{ id: string }> }
) {
  // 后续逻辑保持不变,直接使用params.id即可
  const { id } = params;
  // ...
}

这样TypeScript就能正确识别参数类型,避免构建错误。


解决方案2:确保tsconfig.json继承Next.js官方配置

如果你的tsconfig.json没有继承Next.js的核心配置,可能会导致类型定义不兼容。修改tsconfig.json如下:

{
  "extends": "next/core-web-vitals",
  "compilerOptions": {
    "target": "esnext",
    "module": "esnext",
    "strict": true
  }
}

继承官方配置后,TypeScript会自动加载Next.js的所有类型定义,避免自定义类型与官方类型冲突。


解决方案3:检查Next.js版本兼容性

Next.js 15部分版本可能存在类型定义的小bug,如果上述方法无效,可以尝试升级到最新的稳定版,或者回退到15.1.x的其他小版本,确保类型定义文件完整。


内容的提问来源于stack exchange,提问作者hasratyan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.14 17:25:59