SelectSubset<T, U>: {
    [key in keyof T]: key extends keyof U
        ? T[key]
        : never
} & (T extends SelectAndInclude
    ? "Please either choose `select` or `include`."
    : T extends SelectAndOmit
        ? "Please either choose `select` or `omit`."
        : {})

SelectSubset

Type Parameters

  • T
  • U

From T pick properties that exist in U. Simple version of Intersection. Additionally, it validates, if both select and include are present. If the case, it errors.