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

能否向GraphQL Nest.js解析器发送含null值的数组?

问题描述

我能否实现以下操作?我在输入类型中使用了如下代码:

@Field(() => [String], {
    nullable: true,
  })
  date: string[];

当我在date字段中发送包含null元素的数组(示例:date: ["2023-02-13 00:00:00", null, null, "2023-02-13 00:00:00"])时,出现错误:Error: Expected value of type "String!", found null。请问我能否发送部分位置为null的数组?

解决方案

可以发送包含null元素的数组,但你当前的配置只允许整个数组为null,而非数组内的元素为null。

你现在的代码中,nullable: true的作用是允许date字段本身为null(比如不传这个字段,或者直接传null),但数组里的每个元素被定义为非空的String!类型,所以当你传入null元素时会触发类型校验错误。

要让数组元素支持null,需要修改@Field的nullable配置:

  • 如果只想允许数组元素为null,设置nullable: 'items'
  • 如果同时允许整个数组为null且元素为null,设置nullable: 'itemsAndList'

修改后的代码示例:

@Field(() => [String], {
  // 允许数组元素为null,同时允许整个数组为null
  nullable: 'itemsAndList',
})
date: (string | null)[];

或者:

@Field(() => [String], {
  // 仅允许数组元素为null,数组本身必须存在
  nullable: 'items',
})
date: (string | null)[];

这样配置后,GraphQL会将数组类型解析为[String](元素可为null),而非[String!](元素不可为null),就能正常接收包含null元素的数组了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 03:15:23