Package version:

Type Alias SelectFields<TModel>

SelectFields<TModel>: (<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
            : TModel extends (infer Elem)[]
                ? Elem extends object
                    ? SelectFields<Elem>
                    : never
                : {
                    [Key in keyof TModel]: Key extends string
                        ? NonNullable<(...)[(...)]> extends object
                            ? NonNullable<(...)> extends ExcludedODataTypes
                                ? Key
                                : (...) extends (...)
                                    ? (...)
                                    : (...)
                            : Key
                        : never
                }[keyof TModel & string] & string

Produces a union of valid Cognitive Search OData $select paths for T using a post-order traversal of the field tree rooted at T.

Type Parameters

  • TModel extends object