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

使用@IsEnum校验时出现Cannot convert undefined or null to object错误排查

问题原因分析

以下是导致该错误的几种常见原因:

  • 循环导入
    若EvaluationStatusEnum所在文件,与包含UpdateEvaluationModelForReportChanges的文件存在循环导入(比如枚举文件间接导入了模型文件,反之亦然),会导致装饰器执行时枚举还未完成初始化,传入@IsEnum的参数为undefined,触发Cannot convert undefined or null to object错误。

  • 导入路径错误
    检查EvaluationStatusEnum的导入路径是否正确:相对路径层级是否准确,或者在使用路径别名的项目中,别名配置是否生效。错误的导入路径会导致实际导入的是undefined,而非目标枚举。

  • TypeScript编译配置问题

    • 查看tsconfig.json的module和moduleResolution配置,若模块解析方式与枚举文件的导出/导入逻辑不匹配(比如使用CommonJS模块但导出方式不符合规范),可能导致运行时枚举未被正确加载。
    • 确认枚举文件是否在tsconfig.json的include范围内,若被排除在编译外,编译后的代码中枚举会无法被正确引用。
  • 装饰器执行时机问题
    class-validator的装饰器在类定义阶段同步执行,若EvaluationStatusEnum是通过动态导入或其他延迟加载方式引入的,会导致装饰器执行时枚举还未加载完成,传入@IsEnum的参数为undefined。

内容的提问来源于stack exchange,提问作者Adora González

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.04 12:37:27