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.