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

NestJS搭配GraphQL使用ValidationPipe报plainToClass不是函数错误

这个错误是@nestjs/common版本与class-transformer版本不兼容导致的。class-transformer从v0.5.x版本开始,废弃并移除了旧的plainToClass方法,替换为plainToInstance方法,但低版本的@nestjs/common内置的ValidationPipe仍然在调用已被删除的plainToClass方法,因此触发该报错。


解决方案

方案1:降级class-transformer到兼容版本

直接安装v0.4.x版本的class-transformer即可适配当前的NestJS版本:

# npm 安装
npm install class-transformer@0.4.0
# yarn 安装
yarn add class-transformer@0.4.0

安装完成后重启项目,ValidationPipe即可正常使用。

方案2:升级NestJS相关依赖到最新版本

如果不想降级第三方依赖,可以将所有NestJS核心依赖升级到最新版本,新版本的NestJS已经适配了class-transformer v0.5.x+的新API:

# npm 升级
npm update @nestjs/common @nestjs/core @nestjs/graphql
# yarn 升级
yarn upgrade @nestjs/common @nestjs/core @nestjs/graphql

升级完成后重启项目即可解决问题。


额外建议

你的DTO类名createRestaurantDto建议调整为大驼峰格式CreateRestaurantDto,符合TypeScript类命名的通用规范,避免后续出现不必要的问题。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 23:06:02