Sobes.tech
Junior — Middle

Môžete vysvetliť účel a fungovanie kľúčového operátora infer v jazyku TypeScript?

sobes.tech AI

Odpoveď od AI

Operátor infer v TypeScript sa používa vnútri podmienených typov na odvodzenie (alebo inferenciu) typu z iného typu. Umožňuje deklarovať premennú typu, ktorá bude automaticky odvodená kompilátorom, ak je splnená podmienka typu.

Napríklad, ak máte typ funkcie a chcete získať typ jej argumentu alebo návratovej hodnoty, môžete použiť infer na extrakciu týchto typov:

type ReturnType<T> = T extends (...args: any[]) => infer R ? R : never;

// Príklad použitia:
type Fn = (x: number) => string;
type Result = ReturnType<Fn>; // Result bude string

Tu infer R hovorí kompilátoru: "ak typ T zodpovedá funkcii, potom extrahuj typ návratovej hodnoty ako R". Je to mocný nástroj na tvorbu všeobecných a podmienených typov, ktorý umožňuje pracovať s typmi flexibilnejšie a dynamickejšie.