fix(partition): add exclusion when using type guard #6168
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.
Description:
Add exclusion to partition when using a type guard.
Previously support for a user defined type guard was added to partition. This meant that Typescript could understand the first item in the resulting tuple to match a certain type. What was missing was Typescript understanding the second item in the tuple to not be of that type. As an example:
Without this change Typescript would consider
bMessage$
to be the same type asmessage$
:Observable<AMessage | BMessage>
. Whereas we are surebMessage$
only emitsBMessage
, because allAMessage
will be put inaMessage$
.