ExtractObjectsDeep<T>:(T extends (infer U)[] ? U extends ObjectType<U> ? UnionObjectProps<U> | U : never : T extends ObjectType<T> ? UnionObjectProps<T> | T : never) extends infer V ? Exclude<V, undefined> : never
Similar to Flatten, but only extracts objects, not arrays.
Similar to Flatten, but only extracts objects, not arrays.