类型系统
The GraphQL Type system describes the capabilities of a GraphQL server and is used to determine if a query is valid. The type system also describes the input types of query variables to determine if values provided at runtime are valid.
A GraphQL server’s capabilities are referred to as that server’s “schema”. A schema is defined in terms of the types and directives it supports.
A given GraphQL schema must itself be internally valid. This section describes the rules for this validation process where relevant.
A GraphQL schema is represented by a root type for each kind of operation: query and mutation; this determines the place in the type system where those operations begin.
All types within a GraphQL schema must have unique names. No two provided types may have the same name. No provided type may have a name which conflicts with any built in types (including Scalar and Introspection types).
All directives within a GraphQL schema must have unique names. A directive and a type may share the same name, since there is no ambiguity between them.
All types and directives defined within a schema must not have a name which begins with"__"(two underscores), as this is used exclusively by GraphQL’s introspection system.