Union extends unknown ?()

in sdk/search/search-documents/src/indexModels.ts [728:776]


    Union extends unknown ? (_: Union) => unknown : never
  ) extends // Infer the intersection of the members of U as a single intersected parameter type
  (_: infer I) => unknown
    ? I
    : never;

// Types that should not be included in SelectFields recursion
export type ExcludedODataTypes = Date | GeographyPoint;

/**
 * Produces a union of valid Cognitive Search OData $select paths for T
 * using a post-order traversal of the field tree rooted at T.
 */
export type SelectFields<TModel extends object> =
  // If T is never, any, or object, resolves to string
  (<T>() => T extends TModel ? true : false) extends <T>() => T extends never ? true : false
    ? string
    : (<T>() => T extends TModel ? true : false) extends <T>() => T extends any ? true : false
      ? string
      : (<T>() => T extends TModel ? true : false) extends <T>() => T extends object ? true : false
        ? string
        : // If T is an array, allow selecting from fields in the array's element type
          TModel extends Array<infer Elem>
          ? // Allow selecting fields only from elements which are objects
            Elem extends object
            ? SelectFields<Elem>
            : never
          : {
              // Only consider string keys
              [Key in keyof TModel]: Key extends string
                ? NonNullable<TModel[Key]> extends object
                  ? NonNullable<TModel[Key]> extends ExcludedODataTypes
                    ? // Excluded, so don't recur
                      Key
                    : // Extract subpaths from T[Key]
                      SelectFields<NonNullable<TModel[Key]>> extends infer NextPaths
                      ? // This check is required to avoid distributing `never` over the condition
                        (<T>() => T extends NextPaths ? true : false) extends <
                          T,
                        >() => T extends never ? true : false
                        ? Key
                        : NextPaths extends string
                          ? Key | `${Key}/${NextPaths}`
                          : Key
                      : never
                  : // Not an object, so can't recur
                    Key
                : never;
            }[keyof TModel & string] &