Sobes.tech
Middle+

Kaip paskelbti naują tipą, pagrįstą Foo, bet be laukų a ir c, nenaudojant Omit?

sobes.tech AI

Atsakymas iš AI

Norėdami deklaruoti naują tipą, pagrįstą Foo, išskyrus a ir c laukus be naudojant Omit, galite naudoti sankirtą su Pick ir Exclude. Pavyzdžiui, jei Foo turi laukus a, b, c, d, galite aiškiai nurodyti reikalingus laukus:

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

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

Čia Exclude<keyof Foo, 'a' | 'c'> išskiria raktus a ir c iš visų Foo raktų, o Pick pasirenka likusius laukus. Tokiu būdu gaunate tipą be a ir c laukų, be tiesioginio Omit naudojimo.