Typy warunkowe w TypeScript pozwalają na tworzenie typów zależnych od warunków. Są one używane do wyboru jednego typu na podstawie spełnienia określonych warunków. Wzór składniowy wygląda następująco:
T extends U ? X : Y
Gdzie T to typ, który jest sprawdzany, U to typ porównania, X to typ zwrócony, jeśli warunek jest spełniony, a Y to typ zwrócony, jeśli warunek nie jest spełniony.
Przykład:
type IsString<T> = T extends string ? 'Yes' : 'No'; type Test1 = IsString<'hello'>; // 'Yes' type Test2 = IsString<42>; // 'No'
W tym przykładzie, jeśli typ T jest typu string, zwróci 'Yes', w przeciwnym razie zwróci 'No'. Typy warunkowe są przydatne, gdy chcemy dostosować typy w zależności od innych typów.

