Sobes.tech
Back to questions
Middle+
2

Как объявить новый тип на основе Foo, но без полей a и c, не используя Omit?

Companies where asked
VK Tech

Answer from AI

sobes.tech 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.