Przejdź do treści
webtype.orgDwanaście zagadnień

Dwanaście zagadnień

Droga od typów mapowanych do rekurencyjnych typów warunkowych. Przejdź ją, a piątkowa zagadka przestanie przerażać.

  1. 01

    Aliasy typów

    Nazwa dla typu. Wszystko dalej to alias przyjmujący argumenty.

  2. 02

    Parametry generyczne

    Aliasy przyjmują argumenty. `extends` w tym miejscu to ograniczenie, nie dziedziczenie.

  3. 03

    keyof i dostęp indeksowany

    `keyof T` to unia kluczy T; `T[K]` odczytuje typ właściwości.

  4. 04

    Typy mapowane

    Buduj obiekt, iterując unię kluczy: `{ [K in Keys]: Value }`.

    Ćwiczone w#212 Odtwórz Pick#219 Odtwórz Partial

  5. 05

    Modyfikatory

    Dodawaj lub usuwaj `readonly` i `?` podczas mapowania, przez `+` i `-`.

  6. 06

    Typy warunkowe

    `A extends B ? X : Y` — `if` na poziomie typów, pytający o przypisywalność.

  7. 07

    infer

    Zwiąż zmienną typową we wzorcu i użyj jej w gałęzi prawdziwej.

    Ćwiczone w#213 Rozpakuj

  8. 08

    Dystrybutywność

    Nagi parametr typowy w warunku rozdziela się po unii. `[T]` to zatrzymuje.

  9. 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. 10

    Rekurencja

    Typ warunkowy wywołujący sam siebie. Gałąź fałszywa to wyjście.

    Ćwiczone w#215 Głęboko tylko do odczytu

  11. 11

    Krotki wariadyczne

    Rozwijaj krotki w krotki. `length` zamienia je w licznik.

    Ćwiczone w#216 Dodawanie na poziomie typów#218 Ostatni

  12. 12

    Dokładna równość

    Dlaczego `Equal<X, Y>` to nie `extends` i dlaczego przecięcie go nie przechodzi.