Sobes.tech
Middle+

Ինչպե՞ս հայտարարել նոր տիպ՝ հիմնված Foo-ի վրա, բայց առանց a և c դաշտերի, առանց Omit-ի օգտագործման։

sobes.tech AI

Պատասխան AI-ից

Նոր տիպ հայտարարելու համար Foo հիման վրա, բացառելով a և c դաշտերը առանց Omit օգտագործելու, դուք կարող եք օգտագործել Pick և Exclude հատման։ Օրինակ, եթե Foo ունի a, b, c, d դաշտերը, դուք կարող եք հստակ նշել անհրաժեշտ դաշտերը՝

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

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

Այստեղ, Exclude<keyof Foo, 'a' | 'c'> հանում է a և c բանալիները Foo-ի բոլոր բանալիներից, իսկ Pick ընտրում է մնացած դաշտերը։ Այս կերպ ստանում եք տիպ, որը չունի a և c դաշտերը, առանց ուղղակի Omit-ի օգտագործման։