| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
…pply under strictNullChecks
Two things got a bit mixed together here.
One is that we want the Disabled plugins to all be defined directly in
plugin/index.ts, so that loading ApolloServerPluginInlineTraceDisabled
does not spend time loading the protobuf library.
The other thing is that we started thinking a bit more carefully about
plugin context generics. We wrote some tests to make sure that you can
use an `ApolloServerPlugin<BaseContext>` (ie, a plugin that doesn't need
any particular fields on the context) with any `ApolloServer`, but not
vice versa. As part of getting this to work, we added another
`__forceTContextToBeContravariant`. We also noticed that it made more
sense for BaseContext to be `{}` ("an object with no particular fields")
rather than `Record<string, any>` ("an object where you can do anything
with any of its fields").
We investigated whether the new contravariance annotation coming in the
next two months in TS 4.7
(microsoft/TypeScript#48240) would allow us to
get rid of the `__forceTContextToBeContravariant` hack and the answer is
yes! However, trying `4.7.0-beta` failed for two other reasons. One is
that microsoft/TypeScript#48366 required us to
add some missing `extends` clauses, which we are doing now in this PR.
The other is that `graphql-tools` needs some fixes to work with TS4.7
which we hope they can do soon
(ardatan/graphql-tools#4381).
|
Found Object.assign(undefined, {}); in my code. Thanks! :-) |
Sorry, something went wrong.
…pply under strictNullChecks (microsoft#48366) * Make the unconstrained type parameter and {} assignability rule not apply under strictNullChecks * Fix lint, PR feedback # Conflicts: # src/compiler/checker.ts # tests/baselines/reference/unknownType1.errors.txt
| Back | FazBrowse Home | New Git URL |
A revised version of #33570 that, per the request at the last design meeting, only removes the rule under strictNullChecks.
Note that this does not really fix #32330 like #33570 does, because the original report does not include anything about strict mode, nor is the observed behavioral issue limited to strict mode.