Sobes.tech
Middle+

Hogyan deklaráljunk egy új típust a Foo alapján, de a és c mezők nélkül, Omit használata nélkül?

sobes.tech MI

Válasz az MI-től

Az Foo alapú új típus deklarálásához, kizárva az a és c mezőket anélkül, hogy az Omit-et használnánk, az Pick és Exclude metódusok metszetét használhatja. Például, ha az Foo rendelkezik a, b, c, d mezőkkel, akkor egyértelműen megadhatja a szükséges mezőket:

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

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

Itt az Exclude<keyof Foo, 'a' | 'c'> kizárja az a és c kulcsokat a Foo összes kulcsából, és a Pick kiválasztja a maradék mezőket. Így olyan típust kap, amelyik nem tartalmazza az a és c mezőket, anélkül, hogy közvetlenül az Omit-et használná.