The following code gives an error on the assignment to x:
type Bar = "A" | "B"
type Foo = { key: "a", name: string } | { key: "b", name: Bar }
const x: Foo = { key: "b", name: "A" }
There are multiple weird things that get rid of the error, including:
- Changing
{ key: "a", name: string } to { key: "a" }.
- Changing
name: "A" to name: "A" as Bar