Middle+
Como declarar um novo tipo baseado em Foo, mas sem os campos a e c, sem usar Omit?
sobes.tech IA
Resposta da IA
Para declarar um novo tipo baseado em Foo, excluindo os campos a e c sem usar Omit, pode usar a interseção com Pick e Exclude. Por exemplo, se Foo tiver os campos a, b, c, d, pode especificar claramente os campos necessários:
interface Foo {
a: string;
b: number;
c: boolean;
d: Date;
}
type WithoutAandC = Pick<Foo, Exclude<keyof Foo, 'a' | 'c'>>;
Aqui, Exclude<keyof Foo, 'a' | 'c'> exclui as chaves a e c de todas as chaves de Foo, e Pick seleciona os campos restantes. Assim, obtém-se um tipo sem os campos a e c sem usar diretamente Omit.