Как можно вычленить нужный тип из юниона?
// юнион
type MyUnion = { kind: 'n', value: number } | { kind: 's', value: string };
// возможные варианты
type Extract<Union, Kind> = Union extends { kind: Kind } ? Union : never;
type Extract<Union, Kind> = Union & { kind: Kind };
type Extract<Kind> =
Kind extends 'n' ? { kind: 'n', value: number } :
Kind extends 's' ? { kind: 's', value: string } :
never;
Как это можно еще сделать?
cc
@dersizes