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.