你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
SelectFields type
使用根于 T 的字段树的后序遍历生成 T 的有效认知搜索 OData $select路径的联合。
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<TModel[Key]> extends object
? NonNullable<TModel[Key]> extends ExcludedODataTypes
? Key
: SelectFields<NonNullable<TModel[Key]>> extends NextPaths
? () => (
T extends NextPaths ? true : false
) extends () => T extends never ? true : false
? Key
: NextPaths extends string
? Key | Object
: Key
: never
: Key
: never
}[keyof TModel & string] &
string