Discriminated Union
Дискриминисана унија је Typescript концепт који се заснива на збирном алгебарском типу (Sum ADT) и омогућава предвидљив рад са подацима који могу имати различите облике, али деле једну заједничку особину.
Заједничку особину типова називамо дискриминатор и често налазимо својства именована као tag, type, kind да представљају дискриминатор.
type Square = { tag: "square", size: number };
type Rectangle = { tag: "rectangle", width: number, height: number };
type Circle = { tag: "circle", radius: number };
type Shape = Square | Rectangle | Circle; // Discriminated Union