Package version:

Type Alias SuggestNarrowedModel<TModel, TFields>

SuggestNarrowedModel<TModel, TFields>: (<T>() => T extends TModel
        ? true
        : false) extends (<T>() => T extends never
        ? true
        : false)
    ? TModel
    : (<T>() => T extends TModel
            ? true
            : false) extends (<T>() => T extends object
            ? true
            : false)
        ? TModel
        : (<T>() => T extends TFields
                ? true
                : false) extends (<T>() => T extends never
                ? true
                : false)
            ? keyof ExtractDocumentKey<TModel> extends never
                ? TModel
                : ExtractDocumentKey<TModel>
            : TFields extends SelectFields<TModel>
                ? NarrowedModel<TModel, TFields>
                : never

Type Parameters