TypeScriptGeneryki i typy zaawansowane
Domyślne parametry typu
Wartość, jaką przyjmuje parametr typu, gdy nie zostanie podany ani wywnioskowany.
Przykład
#TypeScript
type ApiResult<TData = unknown, TError = string> =
| { ok: true; data: TData }
| { ok: false; error: TError }
const plain: ApiResult = { ok: false, error: 'timeout' }
const typed: ApiResult<number[]> = { ok: true, data: [1, 2, 3] }
console.log(plain.ok ? 'dane' : plain.error)
console.log(typed.ok ? typed.data.length : 0)Wynik
timeout 3
Definicja i zastosowanie
#Parametr typu może mieć wartość domyślną, zapisaną jak w funkcjach: type Response<T = unknown>. Jeśli ktoś użyje typu bez podawania parametru, zostanie użyta wartość domyślna.
To ułatwia korzystanie z typów generycznych w prostych przypadkach, bez utraty elastyczności w złożonych. Tak działa na przykład Promise w wielu bibliotekach czy typy komponentów React.
Parametry z wartościami domyślnymi muszą stać po parametrach wymaganych, a wartość domyślna musi spełniać ewentualne ograniczenie extends.
Składnia
#Składnia
type Nazwa<T = TypDomyslny> = …
function f<T = TypDomyslny>() { … }Dobre praktyki
#- Domyślne parametry typu to dobre miejsce na
unknown, które wymusza sprawdzenie danych, zamiastany. - Umieszczaj parametry najczęściej zmieniane na początku listy, a te z sensownymi wartościami domyślnymi na końcu.
Powiązane hasła
#Widzisz błąd albo brakuje przykładu? Napisz do nas.