Type Alias SearchPick<TModel, TFields>
SearchPick<TModel, TFields>: (<T>() => T extends TModel ? true : false) extends (<T>() => T extends object ? true : false) ? TModel : (<T>() => T extends TFields ? true : false) extends (<T>() => T extends any ? true : false) ? TModel : (<T>() => T extends TFields ? true : false) extends (<T>() => T extends never ? true : false) ? TModel : UnionToIntersection<TFields extends `${infer FieldName}/${infer RestPaths}` ? FieldName extends keyof TModel & string ? NonNullable<TModel[FieldName]> extends (infer Elem)[] ? Elem extends object ? RestPaths extends SelectFields<(...
)> ? { [Key in (...
) as (...
)]: (...
) } : never : never : NonNullable<(...
)[(...
)]> extends object ? { [Key in keyof (...
) as (...
) & (...
)]: (...
) extends (...
) ? (...
) : (...
) } : never : never : TFields extends keyof TModel ? Pick<TModel, TFields> | Extract<TModel, null> : never> & {}
Deeply pick fields of T using valid Cognitive Search OData $select paths.