Skip to content

Conversation

@weswigham
Copy link
Member

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.

@typescript-bottypescript-bot added Author: Team For Milestone Bug PRs that fix a bug with a specific milestone labels Mar 21, 2022
@weswighamweswigham merged commit 8cd4b7a into microsoft:mainMar 23, 2022
@andrewbranchandrewbranch added the Breaking Change Would introduce errors in existing code label Mar 25, 2022
glasser added a commit to apollographql/apollo-server that referenced this pull request Apr 11, 2022
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).
@HolgerJeromin
Copy link
Contributor

Found Object.assign(undefined,{}); in my code. Thanks! :-)

RyanCavanaugh added a commit to RyanCavanaugh/TypeScript that referenced this pull request May 26, 2022
…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
@microsoftmicrosoft locked as resolved and limited conversation to collaborators Oct 22, 2025
Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

Author: TeamBreaking ChangeWould introduce errors in existing codeFor Milestone BugPRs that fix a bug with a specific milestone

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Generic bounds not enforced on generic argument

5 participants

@weswigham@HolgerJeromin@sandersn@andrewbranch@typescript-bot