字段为空_GraphQL中的列表与非空修饰符

d7e9e83dfe622601081f81eb700eb750.png

非空(Non-Nullable)

在类型关键字后添加一个感叹号 !,即可将其标识为非空类型。在GraphQL中,“非空”的含义不同于一般语言中的“非空”。GraphQL中的非空,指代的仅仅只是不能取null值,亦即只是字面上的非空,而像空字符串 "",空数组 [] 这些在一般语言中代表空含义的值,在GraphQL中并不成立。

例如对于如下字段类型定义:

name: String!

下列取值是合法的:

name: ""

非空与列表组合使用

当非空修饰符修饰的是列表类型时,我们既可以选择修饰列表元素的类型(此时感叹号处于中括号内),也可以选择修饰整个列表(此时感叹号处于中括号外),当然也可以同时修饰二者。此时对取值合法性的理解,应结合上面所述对Non-Nullable的具体含义的认识。

一、修饰列表元素

对于如下字段类型:

friends: [String!]

这表示数组本身可以是null,但是它的成员不能出现任何一个null。因而

friends: null // 有效
friends: [] // 有效
friends: ['a', 'b', null] // 错误

二、修饰列表本身

对于如下字段类型:

friends: [String]!

这表示数组本身是不可以为null的,但是它的成员允许出现null。因此

friends: null // 错误
friends: [] // 有效
friends: [null] // 有效

注意空数组 [] 也是有效的,因为按上面所述,空数组并不属于GraphQL对“空”的定义范畴。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值