Middle+
Comment déclarer un nouveau type basé sur Foo, mais sans les champs a et c, sans utiliser Omit?
sobes.tech IA
Réponse de l'IA
Pour déclarer un nouveau type basé sur Foo, en excluant les champs a et c sans utiliser Omit, vous pouvez utiliser l'intersection avec Pick et Exclude. Par exemple, si Foo possède les champs a, b, c, d, vous pouvez spécifier clairement les champs nécessaires:
interface Foo {
a: string;
b: number;
c: boolean;
d: Date;
}
type WithoutAandC = Pick<Foo, Exclude<keyof Foo, 'a' | 'c'>>;
Ici, Exclude<keyof Foo, 'a' | 'c'> exclut les clés a et c de toutes les clés de Foo, et Pick sélectionne les champs restants. Ainsi, on obtient un type sans les champs a et c sans utiliser directement Omit.