GraphQLでNonNullなList
- フィールド自身がNonNull
- 要素がNonNull
- その両方
があって
let QueryType = new GraphQLObjectType({ name: 'Query', fields: { list1: { type: new GraphQLNonNull(new GraphQLList(GraphQLString)), resolve: () => arr1, }, list2: { type: new GraphQLList(new GraphQLNonNull(GraphQLString)), resolve: () => arr2, }, list3: { type: new GraphQLNonNull(new GraphQLList(new GraphQLNonNull(GraphQLString))), resolve: () => arr3, }, }, });
GraphQLの型で表現するとこうなる。
type Query {
list1: [String]!
list2: [String!]
list3: [String!]!
}
違いはこんな感じ
- list1
null: NG['foo', null]: OK[]: OK
- list2
null: OK['foo', null]: NG[]: OK
- list3
null: NG['foo', null]: NG[]: OK