Middle+
Jak deklarovat nový typ založený na Foo, ale bez polí a a c, aniž byste použili Omit?
sobes.tech AI
Odpověď od AI
Chcete-li deklarovat nový typ založený na Foo, vylučující pole a a c bez použití Omit, můžete využít průnik s Pick a Exclude. Například pokud Foo má pole a, b, c, d, můžete jasně specifikovat požadovaná pole:
interface Foo {
a: string;
b: number;
c: boolean;
d: Date;
}
type WithoutAandC = Pick<Foo, Exclude<keyof Foo, 'a' | 'c'>>;
Zde Exclude<keyof Foo, 'a' | 'c'> vylučuje klíče a a c ze všech klíčů Foo, a Pick vybírá zbývající pole. Tímto způsobem získáte typ bez polí a a c bez přímého použití Omit.