Closed
Description
TypeScript Version: 4.1.2
Search Terms:
interdependent props, Union
changed for an Intersection
, Discriminated Union
Code
// A *self-contained* demonstration of the problem follows...
// Test this by running `tsc` on the command-line, rather than through another build tool such as Gulp, Webpack, etc.
Expected behavior:
Since I use Discriminated Union
I would like to have a Union within the callback as well.
Actual behavior:
Within the callback, I have an intersection instead of Union. But that work well with basic param (Exemple selected
in the Playgound)
Playground Link:
Playground
Related Issues:
#40647, #12184
Seems like it's issue that has brought a bunch of times, but I'm wondering why we still need to do the
function isCase1(props: AllProps): props is Case1 {
return !!props.aParamOfCase1;
}
Only for the callback function
Metadata
Metadata
Assignees
Type
Projects
Milestone
Relationships
Development
No branches or pull requests
Activity
RyanCavanaugh commentedon Dec 23, 2020
This is a correct error; if this were allowed it'd be straightforward to inhabit an
Option[]
with anOption
, which is unsoundalexis-regnaud commentedon Dec 23, 2020
It's a
SimpleSelected | MultipleSelected
so aOption | Option[]
thennewOption
which is of typeOption
should be accepted. I'm kind of confused...RyanCavanaugh commentedon Dec 23, 2020