SelectFields type
Menghasilkan penyatuan jalur $select OData Pencarian AI yang valid untuk T menggunakan traversal pasca-pesanan dari pohon lapangan yang berakar pada T.
type SelectFields<TModel> = (() => (T extends TModel ? true : false) extends () => (T extends never ? true : false) ? string : (() => (T extends TModel ? true : false) extends () => (T extends any ? true : false) ? string : (() => (T extends TModel ? true : false) extends () => (T extends object ? true : false) ? string : (TModel extends Elem[] ? (Elem extends object ? SelectFields<Elem> : never) : {[Key in keyof TModel]: (Key extends string ? (NonNullable<...[...]> extends object ? (NonNullable<...> extends ExcludedODataTypes ? Key : (... extends ... ? ... : ...)) : Key) : never);}[(keyof TModel) & string] & string))))