-
Notifications
You must be signed in to change notification settings - Fork 13.1k
Closed
Labels
DuplicateAn existing issue was already createdAn existing issue was already created
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 xExpected 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
Labels
DuplicateAn existing issue was already createdAn existing issue was already created