NarrowedModel type
縮小 [模型類型] 以只包含選取的 [欄位]
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>