Closed
Description
TypeScript Version: 4.1.3
Search Terms: nested union, flatten union
Code
type T = number | string
let x: T | null // Inspect the type of x
Expected behavior:
Since in most cases, TypeScript takes care to preserve type names, I'd hope x
to get type T | null
.
Actual behavior:
Union types that are part of another union type are eagerly flattened into the outer type, producing a type printed as number | string | null
.
I am running into this when using the TypeScript compiler as a library as part of a documentation generating system. I have some named union types in my API that become noisy and hard to interpret for users when they are expanded every time they appear in some union type.
Playground Link: here
Related Issues: No.
Metadata
Metadata
Assignees
Type
Projects
Milestone
Relationships
Development
No branches or pull requests
Activity
MartinJohns commentedon Dec 23, 2020
Duplicate of #35654.
marijnh commentedon Dec 23, 2020
I agree, closing this one.