Dwanaście zagadnień
Droga od typów mapowanych do rekurencyjnych typów warunkowych. Przejdź ją, a piątkowa zagadka przestanie przerażać.
- 01
Aliasy typów
Nazwa dla typu. Wszystko dalej to alias przyjmujący argumenty.
- 02
Parametry generyczne
Aliasy przyjmują argumenty. `extends` w tym miejscu to ograniczenie, nie dziedziczenie.
- 03
keyof i dostęp indeksowany
`keyof T` to unia kluczy T; `T[K]` odczytuje typ właściwości.
- 04
Typy mapowane
Buduj obiekt, iterując unię kluczy: `{ [K in Keys]: Value }`.
Ćwiczone w#212 Odtwórz Pick#219 Odtwórz Partial
- 05
Modyfikatory
Dodawaj lub usuwaj `readonly` i `?` podczas mapowania, przez `+` i `-`.
- 06
Typy warunkowe
`A extends B ? X : Y` — `if` na poziomie typów, pytający o przypisywalność.
- 07
- 08
Dystrybutywność
Nagi parametr typowy w warunku rozdziela się po unii. `[T]` to zatrzymuje.
- 09
Typy literałów szablonowych
Wzorce łańcuchów na poziomie typów. W połączeniu z `infer` — parsują.
Ćwiczone w#214 Parametry trasy#217 Podziel
- 10
Rekurencja
Typ warunkowy wywołujący sam siebie. Gałąź fałszywa to wyjście.
Ćwiczone w#215 Głęboko tylko do odczytu
- 11
Krotki wariadyczne
Rozwijaj krotki w krotki. `length` zamienia je w licznik.
- 12
Dokładna równość
Dlaczego `Equal<X, Y>` to nie `extends` i dlaczego przecięcie go nie przechodzi.