TypeScriptTypy narzędziowe
Pick<Type, Keys>
Tworzy typ zawierający tylko wybrane właściwości innego typu.
Przykład
#TypeScript
interface User {
id: number
name: string
email: string
passwordHash: string
}
type PublicUser = Pick<User, 'id' | 'name'>
function toPublic(user: User): PublicUser {
return { id: user.id, name: user.name }
}
console.log(toPublic({ id: 7, name: 'Ania', email: 'a@x.pl', passwordHash: '…' }))Wynik
{ id: 7, name: 'Ania' }Definicja i zastosowanie
#Pick<Type, Keys> wybiera z typu tylko podane pola. Pick<User, "id" | "name"> to obiekt z samymi polami id i name, o dokładnie takich typach jak w User.
Przydaje się, gdy komponent lub funkcja potrzebuje tylko fragmentu większego obiektu. Dzięki temu nie trzeba przekazywać ani tworzyć pełnego obiektu, a typ pozostaje powiązany ze źródłem.
Klucze muszą istnieć w typie źródłowym. Literówka w nazwie pola zostanie zgłoszona przez kompilator.
Składnia
#Składnia
type Nowy = Pick<Typ, "pole1" | "pole2">Parametry typu
#Type
typ obiektowy
Typ źródłowy.Keys
unia kluczy Type
Pola, które mają zostać w nowym typie.
Dobre praktyki
#- Gdy łatwiej wymienić pola do usunięcia niż do zostawienia, użyj
Omit. - Typy wyprowadzone przez
Picksame aktualizują się po zmianie typu źródłowego.
Powiązane hasła
#Widzisz błąd albo brakuje przykładu? Napisz do nas.