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

NestJS项目升级apollo-server-plugin-base到v3.2后出现TypeScript报错

错误原因

apollo-server-plugin-base v3版本对插件钩子的类型签名做了不兼容升级,所有钩子强制要求异步返回,你当前使用的还是v2版本的同步写法,不符合新的接口定义。

修复方案

需要针对两个报错点分别调整类型签名:

  1. 修复requestDidStart报错:
  • 方法必须接收GraphQLRequestContext类型的入参(不需要用到上下文内容的话可以只声明不使用)
  • 给方法加上async关键字,让返回值自动包装为Promise类型,匹配接口要求
  1. 修复willSendResponse报错:
  • 给willSendResponse方法加上async关键字,让返回值变为Promise<void>,符合类型约束

修复后完整代码

import { Plugin } from '@nestjs/graphql'
import {
  ApolloServerPlugin,
  GraphQLRequestListener,
  GraphQLRequestContext
} from 'apollo-server-plugin-base'

@Plugin()
export class LoggingPlugin implements ApolloServerPlugin {
  async requestDidStart(requestContext: GraphQLRequestContext): Promise<GraphQLRequestListener> {
    console.log('Request started')
    return {
      async willSendResponse() {
        console.log('Will send response')
      }
    }
  }
}

如果不需要用到请求上下文参数,也可以省略参数的类型声明,只保留async关键字即可正常运行。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 16:12:00