fix type checking when strictNullChecks
is disabled
#1833
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Changes
This PR refactors some types to remove usage of
undefined extends T
conditional types. It also adds a new test suite that is type checked withstrictNullChecks
disabled to allow for increased support of that configuration.Resolves #1778
How to Review
See context in this comment on the issue. Using
undefined extends T
only behaves as expected whenstrictNullChecks
is enabled. While this configuration is highly recommended for consuming projects, it is not the default, and we should design types that also work without it when possible.#1778 describes a case where
params
is required on calls to routes with no parameters defined or no required parameters in the spec. At least two other cases are caused by the same underlying issue:params
is not required, regardless of whether any of the parameters are required in the spec.body
property is not required on calls to routes with a required request body defined in the spec.This PR fixes the behavior of those cases.
Checklist
docs/
updated (if necessary)pnpm run update:examples
run (only applicable for openapi-typescript)