Cześć, tu Jakub. Polubiłeś devFlipCards? Postaw mi kawę

39. Czym jest typ użytkowy Extract w TypeScript i czym różni się od Exclude?

Typ użytkowy Extract w TypeScript

Typ użytkowy Extract w TypeScript służy do konstruowania typu przez wyodrębnienie z T wszystkich członków unii, które można przypisać do U. Jest szczególnie przydatny, gdy chcesz wyfiltrować określone typy z typu unii.

Składnia:

type Extract<T, U> = T extends U ? T : never;

Przykład:

type Owoc = 'jabłko' | 'banan' | 'pomarańcza'; type Cytrus = 'pomarańcza' | 'cytryna'; type Wyodrębnione = Extract<Owoc, Cytrus>; // 'pomarańcza'

W tym przykładzie Wyodrębnione będzie zawierać tylko 'pomarańcza', ponieważ jest to jedyny typ wspólny dla Owoc i Cytrus.

Czym różni się Extract od Exclude?

  • Extract: Zatrzymuje tylko typy obecne zarówno w T, jak i U.
  • Exclude: Usuwa typy z T, które są obecne w U.

Przykład Exclude:

type NieCytrus = Exclude<Owoc, Cytrus>; // 'jabłko' | 'banan'

W tym przypadku NieCytrus będzie zawierać 'jabłko' i 'banan', ponieważ nie są obecne w Cytrus.

Kiedy używać Extract a kiedy Exclude

  • Używaj Extract, gdy chcesz zawęzić typ unii do określonych członków.
  • Używaj Exclude, gdy chcesz odfiltrować określonych członków z typu unii.

Zrozumienie tych typów użytkowych może pomóc pisać bardziej wyrazisty i łatwiejszy w utrzymaniu kod TypeScript, szczególnie przy pracy z złożonymi typami i transformacjami typów.

Nie możesz znaleźć wspólnego terminu na spotkanie z przyjaciółmi? Sprawdź nasze narzędzie
commondate.xyz