DataType<T>: T extends infer U | undefined ? U extends string ? "text" | "uuid" | "blob" : U extends number ? "number" | "int" : U extends boolean ? "boolean" : U extends Date ? "date" : U extends string[] ? "text[]" | "uuid[]" : U extends number[] ? "number[]" | "int[]" : U extends boolean[] ? "boolean[]" : U extends Date[] ? "date[]" : U extends GeoCoordinate ? "geoCoordinates" : (...
) extends (...
) ? (...
) : (...
) : never