Kształty obiektów
Pick
Zachowuje tylko wymienione klucze i sprawdza, że istnieją.
Czym jest
Typ mapowany po K, a nie po keyof T, i dlatego wynikiem jest zwykły obiekt, a nie kopia oryginału. Ograniczenie K extends keyof T naprawdę pracuje: wybierz klucz, którego nie ma, a błąd pojawi się przy typie, a nie później przy dostępie do właściwości.
Przykłady
Pick<{ a: string; b: number }, 'a'>→{ a: string; }Pick<{ a: string; b: number; c: boolean }, 'a' | 'c'>→{ a: string; c: boolean; }Pick<{ readonly a: string }, 'a'>→{ readonly a: string; }readonlyzostaje przeniesione, boPickmapuje po zbiorze kluczy wywiedzionym zT.
Każdy rozwinięty typ powyżej wypisał TypeScript 6.0.3, nie ręka człowieka.
Czego nie robi
- Nie przyjmuje kluczy, których nie ma. To zaleta i to właśnie różni
PickodOmit— ten drugi przyjmuje cokolwiek. - Nie dystrybuuje się po unii w
T.Pick<A | B, K>wybiera z unii jak z jednej całości, a nie z każdego składnika.
Wniosek
Gdy chcesz podzbiór i chcesz wiedzieć o literówkach, Pick jest tym z barierką.

