Fix #55632 issue (No type inferrence of callback arguments inside a tuple union type) #60434
+1,038
−3
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.
Passes all existing test cases and Airtable codebase ("Identicality" checks are probably quite rare so unsurprising). Creating this in the hopes that we can use the test infra on this repo to run this against the corpus of other open source libraries.
Fixes #55632.
In summary, the PR adds a new method:
...and calls it in the existing
getApparentTypeOfContextualType
method:It also adds a new unit tests file
tests/cases/compiler/tupleTypeInference3.ts
with the code failing in #55632 and other related tests.The PR doesn't provide anything for code completion, which could be handled by #58571.
Question: I use the
isTupleLikeType
method to match actual tuple types and tuple-like types liketype T = { 0: 1, 1: (a: boolean) => void }
(see the new unit tests file). TheisTupleLikeType
checks also for array-like type, but I was unable to create any such type. Can anybody tell me how to create such types and what I should do with them?