Sobes.tech
Middle+

¿Cómo declarar un nuevo tipo basado en Foo, pero sin los campos a y c, sin usar Omit?

sobes.tech AI

Respuesta de la IA

Para declarar un nuevo tipo basado en Foo, excluyendo los campos a y c sin usar Omit, puedes usar la intersección con Pick y Exclude. Por ejemplo, si Foo tiene los campos a, b, c, d, puedes especificar claramente los campos necesarios:

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

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

Aquí, Exclude<keyof Foo, 'a' | 'c'> excluye las claves a y c de todas las claves de Foo, y Pick selecciona los campos restantes. De esta manera, se obtiene un tipo sin los campos a y c sin usar directamente Omit.