Sobes.tech
Middle+

Πώς να δηλώσετε έναν νέο τύπο βασισμένο σε Foo, αλλά χωρίς τα πεδία a και c, χωρίς να χρησιμοποιήσετε το Omit;

sobes.tech AI

Απάντηση από AI

Για να δηλώσετε έναν νέο τύπο βασισμένο σε Foo, εξαιρώντας τα πεδία a και c χωρίς να χρησιμοποιήσετε Omit, μπορείτε να χρησιμοποιήσετε το διασταύρωση με Pick και Exclude. Για παράδειγμα, αν το Foo έχει πεδία a, b, c, d, μπορείτε να ορίσετε σαφώς τα απαραίτητα πεδία:

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

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

Εδώ, το Exclude<keyof Foo, 'a' | 'c'> εξαιρεί τα κλειδιά a και c από όλα τα κλειδιά του Foo, και το Pick επιλέγει τα υπόλοιπα πεδία. Με αυτόν τον τρόπο, λαμβάνετε έναν τύπο χωρίς τα πεδία a και c χωρίς να χρησιμοποιήσετε άμεσα το Omit.