Work around TypeScript limitation with the PartialDeep type#296
Merged
sindresorhus merged 1 commit intosindresorhus:mainfrom Oct 17, 2021
Merged
Work around TypeScript limitation with the PartialDeep type#296sindresorhus merged 1 commit intosindresorhus:mainfrom
PartialDeep type#296sindresorhus merged 1 commit intosindresorhus:mainfrom
Conversation
0b7ea15 to
504819d
Compare
504819d to
a678579
Compare
merrywhether
commented
Oct 16, 2021
| baz: 'fred', | ||
| bar: { | ||
| function: (_: string): void => {}, // eslint-disable-line @typescript-eslint/no-empty-function | ||
| function: (_: string): void => undefined, |
Contributor
Author
There was a problem hiding this comment.
To avoid eslint magic comment
PartialDeep to prevent TS2589 errorPartialDeep type
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
This fixes #295, fixing an edge-case where
PartialDeepevaluation can result in infinite depth for specific recursive type situations. This started out trying to add the exact changes from the suggestion, but arrays and tuples behave differently so it got a little more complex.npm testpasses with TS 4.4.4 locally. Verified new test case failed withoutPartialDeepchanges. Added comments following the convention seen in other files, but happy to remove them if they are unnecessary.