Required<Type>

Tworzy typ, w którym wszystkie właściwości są wymagane.

Na tej stronie

Przykład

#
TypeScript
interface Options {
  theme?: 'dark' | 'light'
  pageSize?: number
}

const defaults: Required<Options> = { theme: 'dark', pageSize: 20 }

function resolve(options: Options): Required<Options> {
  return { ...defaults, ...options }
}

const resolved = resolve({ pageSize: 50 })
console.log(resolved.theme, resolved.pageSize)
Wynik
dark 50

Definicja i zastosowanie

#

Required<Type> robi odwrotność Partial: usuwa znak zapytania ze wszystkich pól, więc każde staje się obowiązkowe. Typ pola traci też wariant undefined wynikający z opcjonalności.

Przydaje się, gdy konfiguracja po połączeniu z wartościami domyślnymi jest już kompletna. Funkcja przyjmuje Partial<Config>, a zwraca Required<Config>, więc dalszy kod nie musi sprawdzać brakujących pól.

Podobnie jak inne typy narzędziowe działa płytko: zagnieżdżone obiekty zachowują swoje opcjonalne pola.

Składnia

#
Składnia
type Nowy = Required<Typ>

Parametry typu

#
  • Type

    typ obiektowy

    Typ, którego pola mają stać się wymagane.

Dobre praktyki

#
  • Wzór „wejście Partial, wyjście Required” świetnie sprawdza się przy opcjach z wartościami domyślnymi.
  • Uważaj przy rozwijaniu obiektów: jawne undefined w opcjach nadpisze wartość domyślną.

Powiązane hasła

#

Widzisz błąd albo brakuje przykładu? Napisz do nas.