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

NestJS/GraphQL:如何返回值与null混合的数组?

解决@nestjs/graphql中数组字段返回null与数组混合的问题

你当前的问题是在定义RoundDto的teams字段时,想要返回[[string, string], null, [string, string], null]这类混合格式,但因为GraphQL类型声明默认不允许数组元素为null,所以抛出Cannot return null for non-nullable field Round.teams.错误。不需要自定义标量,只需调整字段的@Field装饰器配置即可。

修改后的代码

@ObjectType('Round')
export class RoundDto {
  @Field(() => GraphQLInt)
  round: number;

  @Field(() => [[GraphQLString]], { nullable: 'items' })
  teams: (Nullable<[string, string]>)[];
}

关键说明

  • { nullable: 'items' }:这个配置告诉GraphQL,teams数组的元素可以为null,直接解决你遇到的非空字段错误。
  • TypeScript类型(Nullable<[string, string]>)[]:确保编译时类型与GraphQL定义一致,外层数组的每个元素要么是长度为2的字符串数组,要么是null。
  • 如果需要内层数组的元素也允许为null(比如[null, "2"]这种场景),可以进一步调整内层字段的nullable配置,不过你的预期格式里内层是完整的字符串对,所以当前配置足够。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.12 08:26:03