Middle+
Jak zadeklarować nowy typ oparty na Foo, ale bez pól a i c, bez użycia Omit?
sobes.tech AI
Odpowiedź od AI
Aby zadeklarować nowy typ oparty na Foo, wykluczając pola a i c bez użycia Omit, można skorzystać z przecięcia z Pick i Exclude. Na przykład, jeśli Foo ma pola a, b, c, d, można wyraźnie wskazać potrzebne pola:
interface Foo {
a: string;
b: number;
c: boolean;
d: Date;
}
type WithoutAandC = Pick<Foo, Exclude<keyof Foo, 'a' | 'c'>>;
Tutaj, Exclude<keyof Foo, 'a' | 'c'> wyklucza klucze a i c ze wszystkich kluczy Foo, a Pick wybiera pozostałe pola. W ten sposób uzyskuje się typ bez pól a i c bez bezpośredniego użycia Omit.