使用Prisma构建时类型校验报错:TS1005 缺失'?'
解决Prisma构建时出现的TS1005错误
问题根源
这个错误是因为你使用的TypeScript版本过低,不支持Prisma客户端代码里的新语法。Prisma新版本中用到了TypeScript 4.7才支持的带约束的infer写法(比如报错代码里的infer S extends object),旧版TS无法识别这种语法,所以构建时触发错误。日常运行正常,大概率是开发环境的TS配置没那么严格,或者开发用的TS版本比构建环境新。
解决办法
- 升级TypeScript到4.7及以上版本:直接在项目里升级TS,执行命令:
npm install typescript@^4.7 --save-dev # 用yarn的话执行这个 yarn add typescript@^4.7 --dev - 对齐构建环境的TS版本:检查CI/CD或构建脚本,确保构建环境使用的TS版本和本地开发一致,避免版本不一致导致的语法兼容问题。
- 确认Prisma与TS版本兼容性:如果升级TS后仍报错,核对Prisma官方的版本兼容表,确保你使用的Prisma版本和TS版本匹配。
- 临时方案:跳过第三方库类型校验(不推荐):如果暂时无法升级TS,可在
tsconfig.json中开启skipLibCheck: true,跳过对@prisma/client这类第三方库的类型检查,但这只是权宜之计,可能会隐藏其他类型问题。修改tsconfig.json:{ "compilerOptions": { "skipLibCheck": true } }
验证修复
执行构建命令,确认错误是否消失:
npm run build # 或 yarn build
内容的提问来源于stack exchange,提问作者Feels
相关产品推荐
相关产品推荐

