Skip to content

Use type references for better error messages when relating to a union type #24776

Closed
@DanielRosenwasser

Description

@DanielRosenwasser

When relating A<Foo> to A<Bar> | B<Baz> | C<Kwah>, if the check fails, it is highly likely that the user wants to see the elaboration from A<Foo> to A<Bar>, rather than for A<Foo> to B<Baz> or A<Foo> to C<Kwah>.

We should try to find candidates when source types are type references, and target types are unions.

As a real-world example, here's an error message where TypeScript had the chance to relate ComponentClass<...> to ComponentClass<...> | StatelessComponent<...>:

https://news.ycombinator.com/item?id=17244638

image

This should also work for if two types have a well-known type alias.

Vaguely related to #6541?

Metadata

Metadata

Labels

BugA bug in TypeScriptDomain: Error MessagesThe issue relates to error messagingFixedA PR has been merged for this issue

Type

No type

Projects

No projects

Relationships

None yet

    Development

    No branches or pull requests

      Participants

      @sandersn@DanielRosenwasser@mhegazy

      Issue actions

        Use type references for better error messages when relating to a union type · Issue #24776 · microsoft/TypeScript