Kit
Type aliases

GetDiscriminatedUnionVariant

GetDiscriminatedUnionVariant<TUnion, TDiscriminatorProperty, TDiscriminatorValue> = Extract<TUnion, DiscriminatedUnion<TDiscriminatorProperty, TDiscriminatorValue>>

Extracts a variant from a discriminated union based on its discriminator value.

Type Parameters

Type ParameterDescription
TUnion extends DiscriminatedUnion<TDiscriminatorProperty>The discriminated union type.
TDiscriminatorProperty extends stringThe property used as the discriminator.
TDiscriminatorValue extends TUnion[TDiscriminatorProperty]The specific variant to extract.

Example

type Message =
  | { __kind: 'Quit' }
  | { __kind: 'Write'; fields: [string] }
  | { __kind: 'Move'; x: number; y: number };
 
type ClickEvent = GetDiscriminatedUnionVariant<Message, '__kind', 'Move'>;
// -> { __kind: 'Move'; x: number; y: number }

On this page