你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

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>