Sobes.tech
Middle+

Čo je to type guard?

sobes.tech AI

Odpoveď od AI

Type guard — je mechanizmus v TypeScript, ktorý umožňuje upresniť typ premennej v určitom bloku kódu, aby s týmto typom mohol kompilátor bezpečne pracovať. Type guard — je funkcia alebo výraz, ktorý kontroluje, či objekt zodpovedá určitému typu.

Príklad type guard s použitím vlastnej funkcie:

interface Mačka {
  meow(): void;
}

interface Pes {
  bark(): void;
}

function isMačka(zvieratko: Mačka | Pes): zvieratko is Mačka {
  return (zvieratko as Mačka).meow !== undefined;
}

function rozprávať(zvieratko: Mačka | Pes) {
  if (isMačka(zvieratko)) {
    zveratko.meow(); // TypeScript vie, že je to Mačka
  } else {
    zveratko.bark(); // Tu je Pes
  }
}

Týmto spôsobom pomáha type guard bezpečne pracovať s zjednotenými typmi, upresňuje ich v rámci podmienkových štruktúr.