type Example {
first: String
second: String!
third: [String]
fourth: [String!]
fifth: [String!]!
}
// first
if (type.kind === 'NamedType') {
// => `String`
}
// second
if (type.kind === 'NonNullType' && type.type.kind === 'NamedType') {
// => `String!`
}
// third
if (type.kind === 'ListType' && type.type.kind === 'NamedType') {
// => `[String]`
}
// fourth
if (
type.kind === 'ListType' &&
type.type.kind === 'NonNullType' &&
type.type.type.kind === 'NamedType'
) {
// => `[String!]`
}
// fifth
if (
type.kind === 'NonNullType' &&
type.type.kind === 'ListType' &&
type.type.type.kind === 'NonNullType' &&
type.type.type.type.kind === 'NamedType'
) {
// => `[String!]!`
}