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

Next.js中Type '{ params: PageParams; }'不满足PageProps约束的类型错误

问题解决:Next.js App Router中Params类型不匹配错误

错误根源

代码里的核心问题是:在Next.js App Router的服务器组件中,params是直接传入的普通对象,并非Promise,但你错误地使用了await params来解构slug。这导致TypeScript判定params应该是Promise类型,和你定义的PageProps里的普通对象类型冲突,进而抛出类型不匹配错误。

修复步骤

1. 移除多余的await关键字

直接从params中解构slug,无需等待操作:

export default async function Page({ params }: PageProps) {
  // 删掉await,直接解构params
  const { slug } = params;

  const data: Block[] | null = await getPage(slug.join("/"));
  
  if (!data) {
    notFound();
  }

  return (
    <div>
      <BlockRenderer blocks={data || []} />
    </div>
  )
}

2. 保留正确的类型定义

你原本的PageProps定义是正确的,无需修改:

interface PageProps {
  params: {
    slug: string[];
  };
}

开发模式正常运行的原因

开发模式下Next.js的类型检查相对宽松,运行时的类型推断暂时掩盖了这个错误,但生产构建时TypeScript会严格校验类型,因此错误会被触发。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.16 10:59:58