facebook / facebook/flow

Intersection type incompatible with equivalent type

Offen
#3,363 1 Kommentar 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen
Vorherrschende Sprache
Rust
Sterne
22.3k
Forks
1.9k
PR-Merge-Kennzahlen
Keine gemergten PRs in 30 T.

Beschreibung

In this example:
```
type A = { type: 'a', a: string }
type B = { type: 'b', b: string }
type C = { type: 'a' } & ( A | B )

const a : A = { type: 'a', a: 'a' }
const c : C = { type: 'a', a: 'a' }

const a1 : A = c // (c) intersection. This type is incompatible with (A) object type
const c1 : C = a // fine
```
I believe `C` and `A` should be equivalent (though I might be missing something), but flow is showing an error when assigning a value of type `C` to a variable of type `A`.

Would it be possible for flow deduce that `A` and `C` are equivalent in this case (if they are)?

Beitragsleitfaden

Beitragsleitfaden öffnen

Bewertung

Dieses Issue wurde noch nicht bewertet.

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.