Note

Access to this page requires authorization. You can try signing in or .

Access to this page requires authorization. You can try .

NarrowedModel type

Narrows the Model type to include only the selected Fields

type NarrowedModel<TModel, TFields> = () => (
 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<TModel>
 ? true
 : false
 ? TModel
 : SearchPick<TModel, TFields>