Consider this simple scenario:
type Alpha = {
children: any;
size?: string;
};
type Beta = Omit<Alpha, 'children'>;
// I understand the type of Beta.
type Gamma = {
[x: string]: any;
children: any;
size?: string;
};
type Delta = Omit<Gamma, 'children'>;
// Why does Z lose the type of `size`?
(Test it out on this playground.)
Could this be a mistake?