Sobes.tech
Назад к вопросам
Middle+
1

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

Компании, где спрашивали
VK Tech

Ответ от нейросети

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.