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.