我正在使用Typescript开发Nextjs 14,并且try 使用cler进行身份验证和授权.当我使用文员文档创建应用程序时,据说我在中间件.ts中编写了以下代码

import { authMiddleware } from "@clerk/nextjs";

export default authMiddleware({});

export const config = {
    matcher: ["/((?!.+.[w]+$|_next).*)", "/", "/(api|trpc)(.*)"],
};

然后过了一段时间,当我在店员文件中申请受保护的路由时,我发现:

This method is now deprecated. Please use clerkMiddleware() instead.

文档:https://clerk.com/docs/references/nextjs/auth-middleware

当我在我的中间件.ts中写这句话时,我在标题中得到了错误:

'"@clerk/nextjs/server"' has no exported member named 'clerkMiddleware'. Did you mean 'WithClerkMiddleware'?ts(2724)

我也用

npm i clerk@latest

我应该如何解决错误

推荐答案

您试图安装的包名称中似乎存在打字错误.要解决此问题,您应该更新到5.0.0或更高版本,其中包括clerkMiddleware功能.您可以通过在终端中运行以下命令来更新包:

npm i @clerk/nextjs@latest   

Typescript相关问答推荐

使用类和子类以及迭代类属约束对类属递数据 struct 建模

排序更改数组类型

VS代码1.88.0中未出现自动导入建议

typescript抱怨值可以是未定义的,尽管类型没有定义

material 表不渲染任何数据

如何调整对象 struct 复杂的脚本函数的泛型类型?

TypeScrip:来自先前参数的参数中的计算(computed)属性名称

下载量怎么会超过下载量?

找不到财产的标准方式?

转换器不需要的类型交集

有没有办法在Zod中使用跨字段验证来判断其他字段,然后呈现条件

如何避免从引用<;字符串&>到引用<;字符串|未定义&>;的不安全赋值?

在TypeScript中,如何通过一系列过滤器缩小类型?

有没有更干净的方法来更新**key of T**的值?

如何以类型安全的方式指定键的常量列表,并从该列表派生所挑选的接口?

Select 类型的子项

在tabel管理区域react js上设置特定顺序

参数未映射泛型返回类型

使用NextJS中间件重定向,特定页面除外

如何在由函数参数推断的记录类型中具有多个对象字段类型