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.