Build a discriminated union from a tag key and a mapping object.
Discriminator property name
Mapping of discriminator values to object shapes
Creates a union of object types where each member is tagged with a literal discriminator value derived from the mapping keys.
type AnimalMap = { cat: { meows: boolean }; dog: { barks: boolean };};type Animal = DiscriminatedUnion< 'type', AnimalMap >;// { type: 'cat'; meows: boolean } | { type: 'dog'; barks: boolean } Copy
type AnimalMap = { cat: { meows: boolean }; dog: { barks: boolean };};type Animal = DiscriminatedUnion< 'type', AnimalMap >;// { type: 'cat'; meows: boolean } | { type: 'dog'; barks: boolean }
Build a discriminated union from a tag key and a mapping object.