Sobes.tech
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.