Jednou z hezkých věcí v TypeScriptu je možnost definovat vlastní datové typy a to hned dvěmi způsoby: skrze type, nebo pomocí interface.

Čas od času se může stát, že potřebujte vámi definovaný typ rozšířit o nějkou vlastnost a nechcete kvůli tomu vytvářet další, nový datový typ. Pak se vám bude hodit konstrukce využívající operátor &, která přesně tohle dělá.

Hezké je, že můžete takto spojovat více již nadefinovaných typů, a spojovat můžete i více než 2 typy, ale můžete rozšířit daný typ jen o konkrétní požadované nové položky.