NarrowedModel type
Narrows the Model type to include only the selected Fields
type NarrowedModel = () => (
T extends TModel ? true : false
) extends () => T extends never ? true : false
? TModel
: () => (T extends TModel ? true : false) extends () => T extends object
? true
: false
? TModel
: () => (T extends TModel ? true : false) extends () => T extends any
? true
: false
? TModel
: () => (
T extends TModel ? true : false
) extends () => T extends unknown ? true : false
? TModel
: () => (
T extends TFields ? true : false
) extends () => T extends never ? true : false
? never
: () => (
T extends TFields ? true : false
) extends () => T extends SelectFields
? true
: false
? TModel
: SearchPick