Sobes.tech
Middle+

Wie deklariert man einen neuen Typ basierend auf Foo, aber ohne die Felder a und c, ohne Omit zu verwenden?

sobes.tech KI

Antwort von AI

Um einen neuen Typ basierend auf Foo zu deklarieren, wobei die Felder a und c ausgeschlossen werden, ohne Omit zu verwenden, kann man die Schnittmenge mit Pick und Exclude nutzen. Zum Beispiel, wenn Foo die Felder a, b, c, d hat, kann man die benötigten Felder explizit angeben:

interface Foo {
  a: string;
  b: number;
  c: boolean;
  d: Date;
}

type WithoutAandC = Pick<Foo, Exclude<keyof Foo, 'a' | 'c'>>;

Hier schließt Exclude<keyof Foo, 'a' | 'c'> die Schlüssel a und c aus allen Schlüsseln von Foo aus, und Pick wählt die verbleibenden Felder aus. Auf diese Weise erhält man einen Typ ohne die Felder a und c, ohne direkt Omit zu verwenden.