Sobes.tech
Middle+

Ako deklarovať nový typ založený na Foo, ale bez polí a a c, bez použitia Omit?

sobes.tech AI

Odpoveď od AI

Ak chcete deklarovať nový typ založený na Foo, vylučujúc polia a a c bez použitia Omit, môžete použiť prienik s Pick a Exclude. Napríklad, ak Foo má polia a, b, c, d, môžete jasne špecifikovať požadované polia:

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

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

Tu Exclude<keyof Foo, 'a' | 'c'> vylučuje kľúče a a c zo všetkých kľúčov Foo, a Pick vyberá zostávajúce polia. Týmto spôsobom získate typ bez polí a a c bez priameho použitia Omit.