Comments (3)
Whoops indeed. We were writing spec as we were deciding on whether null
should be a keyword or not.
The reason we decided not to have null
as a keyword was that field(arg: null)
and field
would be isomorphic and it felt a little weird to have two ways of specifying the same thing.
I think we have a few possible paths forward and I'm interested in your opinions on which we might follow:
-
Fix up the spec, leave things as they are, carry on.
-
Introduce a
null
keyword which represents the valuenull
. Introduce this slightly odd isomorphism but allownull
to be used as expected. -
Introduce a reserved blacklist which the
Name
grammar cannot represent (or more conservatively theEnumValue
cannot represent?), and includenull
on this list. This means there's no way to represent the input valuenull
as is currently the case, but just makesfield(arg: null)
not even parse rather than do an unexpected thing.
from graphql-spec.
Strong vote for fixing the example. With arguments being unordered and having optional default values I don't see a reason for having an explicit null
-type in GraphQL. A list of reserved words that are not going to be used in the future only because they have a meaning something in a different popular language makes no sense.
from graphql-spec.
I added some clarification to the example itself, but also implemented the conservative form of option "3" I described above in a12f6df. An EnumValue
cannot be null
to avoid this confusion.
from graphql-spec.
Related Issues (20)
- Document Level Directives HOT 10
- Coercing Variable Values when hasValue is not true and defaultValue does NOT exist HOT 7
- Strawman: mention of non-self-describing responses
- why not allow directive on field argument ? HOT 2
- On specifying ordered vs unordered enum definitions HOT 5
- Casting Error in GraphQL C# Library HOT 2
- Is there a reason graphql floats do not support Infinity and NaN? HOT 3
- Composite types is not clearly defined HOT 1
- Unclear spec for array with fragments HOT 1
- What must be the result of executing only one fragment on a list of union or interface type? HOT 3
- Interface conditions fragments may not be used across spreads, discouraging reusability HOT 2
- Hey HOT 1
- Really
- REACT
- No validation rule exists to assert mutation/subscription operations exist in the schema HOT 5
- Internal error occurred during message handling. Please check your implementation. Error: Subscription field must return Async Iterable. Received: undefined. HOT 1
- .github/CONTRIBUTING.md
- He
- Allow empty object type _extensions_ in schema HOT 10
- Fragment spread on interface type with no implementers HOT 7
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from graphql-spec.