infer
jest słowem kluczowym w TypeScript używanym w kontekście typów warunkowych. Pozwala na wyodrębnienie typu z określonego wyrażenia w przypadku, gdy warunek jest spełniony. Głównie jest używane w zaawansowanej manipulacji typami, takich jak ekstrakcja typów z funkcji, tablic czy obiektów.
Przykład użycia infer
:
type ReturnType<T> = T extends (...args: any[]) => infer R ? R : never; function add(a: number, b: number): number { return a + b; } type AddReturnType = ReturnType<typeof add>; // 'number'
W tym przykładzie infer
pozwala na wyodrębnienie typu zwracanego przez funkcję (w tym przypadku number
). Zastosowanie infer
w typach warunkowych pozwala na elastyczne manipulowanie typami na poziomie składniowym, umożliwiając tworzenie bardziej zaawansowanych i dynamicznych typów.