UNPKG

ts-sum-types

Version:

Algebraic sum types for TypeScript, designed after Rust's enums

7 lines (6 loc) 288 B
import { TagType } from './util'; import { Variant } from './variant'; import { SumType } from './sumType'; export declare type SumTypeVariant<T> = T extends SumType<infer Tag, Record<TagType, unknown[]>, infer ValueMap> ? Variant<{ [a_Tag in Tag]: ValueMap[a_Tag]; }> : never;