Now hava interfae A, want get type B key and value from A. I don't know how define value of type E.
interface A {
    a: {
        name: string;
        age: number;
    };
    b: {
        w: boolean;
        h: symbol;
    };
}
//want
// type B = {
//     name: string;
//     age: number;
//     w: boolean;
//     h: symbol;
// };
type B<T> = { [K in keyof T]: T[K] }[keyof T];
type C<T> = T extends any ? keyof T : never;
type D<T> = T extends any ? T[keyof T] : never;
type E<T> = { [K in C<B<T>>]: T[keyof T][K] };
type G = E<A>;