TableOf<Table, T>:{ [K in T extends keyof Table ? T : T extends "*" ? keyof Table : T extends WithAlias<infer P, TypedAst<any, infer T, any>> ? P : never]: K extends keyof Table ? Table[K] : T extends WithAlias<infer P, TypedAst<any, infer T, any>> ? T : never }