Sobes.tech
Middle+

Jak deklarovat nový typ založený na Foo, ale bez polí a a c, aniž byste použili Omit?

sobes.tech AI

Odpověď od AI

Chcete-li deklarovat nový typ založený na Foo, vylučující pole a a c bez použití Omit, můžete využít průnik s Pick a Exclude. Například pokud Foo má pole a, b, c, d, můžete jasně specifikovat požadovaná pole:

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

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

Zde Exclude<keyof Foo, 'a' | 'c'> vylučuje klíče a a c ze všech klíčů Foo, a Pick vybírá zbývající pole. Tímto způsobem získáte typ bez polí a a c bez přímého použití Omit.