Sobes.tech
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.