Skip to content

Discriminated Union only auto resolve when it's basic props, not within callback #42023

Closed
@alexis-regnaud

Description

@alexis-regnaud

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

No one assigned

    Labels

    Working as IntendedThe behavior described is the intended behavior; this is not a bug

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions