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

NestJS使用Prisma保存成绩时报错string无法分配给never类型如何解决

问题根因

报错的直接诱因是CreateGradeDto中studentId字段被错误定义为never类型:never是TypeScript的底部类型,不允许接收任何实际赋值,你传入string类型的学生ID自然会触发Type 'string' is not assignable to type 'never'的类型错误。

修复步骤

  1. 修正CreateGradeDto的studentId类型定义,和Prisma Grades模型、数据库字段类型保持一致:
export class CreateGradeDto {
  id: string;
  first_bimester?: number;
  second_bimester?: number;
  third_bimester?: number;
  fourth_bimester?: number;
  // 把原来的never类型替换为string
  studentId: string;
  classId: string;
  createdAt: Date;
  updatedAt: Date;
}
  1. 额外注意:你的Prisma Grades模型中first_bimester/second_bimester等四个成绩字段没有设为可选、也没有配置默认值,如果你Dto中把这几个字段设为可选(带?标记),实际调用Prisma创建接口时如果漏传对应字段会触发数据库非空约束报错,建议根据业务需求同步调整Dto字段的可选性或者Prisma模型的字段约束。
  2. 若你的项目使用了NestJS的类验证器,建议给studentId补充@IsString()等验证装饰器,进一步保障传参合法性。

修复完成后重新编译项目,再调用成绩保存接口即可解决类型报错问题。

内容的提问来源于stack exchange,提问作者Luís Felipe de Souza Silva

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 15:54:06