DeepValue

类型别名: DeepValue<TValue, TAccessor, TDepth>

ts
type DeepValue<TValue, TAccessor, TDepth> = unknown extends TValue ? TValue : TDepth["length"] extends 10 ? unknown : TValue extends ReadonlyArray<any> ? TAccessor extends `[${infer TBrackets}].${infer TAfter}` ? DeepValue<DeepValue<TValue, TBrackets, [...TDepth, any]>, TAfter, [...TDepth, any]> : TAccessor extends `[${infer TBrackets}]` ? DeepValue<TValue, TBrackets, [...TDepth, any]> : TAccessor extends keyof TValue ? TValue[TAccessor] : TValue[TAccessor & number] : TAccessor extends `${infer TBefore}[${infer TEverythingElse}` ? DeepValue<DeepValue<TValue, TBefore, [...TDepth, any]>, `[${TEverythingElse}`, [...TDepth, any]> : TAccessor extends `[${infer TBrackets}]` ? DeepValue<TValue, TBrackets, [...TDepth, any]> : TAccessor extends `${infer TBefore}.${infer TAfter}` ? DeepValue<DeepValue<TValue, TBefore, [...TDepth, any]>, TAfter, [...TDepth, any]> : TAccessor extends string ? 
  | Get<TValue, TAccessor>
  | ApplyNull<...> | ApplyUndefined<...> : never;
type DeepValue<TValue, TAccessor, TDepth> = unknown extends TValue ? TValue : TDepth["length"] extends 10 ? unknown : TValue extends ReadonlyArray<any> ? TAccessor extends `[${infer TBrackets}].${infer TAfter}` ? DeepValue<DeepValue<TValue, TBrackets, [...TDepth, any]>, TAfter, [...TDepth, any]> : TAccessor extends `[${infer TBrackets}]` ? DeepValue<TValue, TBrackets, [...TDepth, any]> : TAccessor extends keyof TValue ? TValue[TAccessor] : TValue[TAccessor & number] : TAccessor extends `${infer TBefore}[${infer TEverythingElse}` ? DeepValue<DeepValue<TValue, TBefore, [...TDepth, any]>, `[${TEverythingElse}`, [...TDepth, any]> : TAccessor extends `[${infer TBrackets}]` ? DeepValue<TValue, TBrackets, [...TDepth, any]> : TAccessor extends `${infer TBefore}.${infer TAfter}` ? DeepValue<DeepValue<TValue, TBefore, [...TDepth, any]>, TAfter, [...TDepth, any]> : TAccessor extends string ? 
  | Get<TValue, TAccessor>
  | ApplyNull<...> | ApplyUndefined<...> : never;

定义在: packages/form-core/src/util-types.ts:104

推断对象或数组中深层嵌套属性的类型。

类型参数

TValue

TAccessor

TDepth extends ReadonlyArray<any> = []

订阅 Bytes

您每周的 JavaScript 新闻。每周一免费发送给超过 10 万名开发者。

Bytes

无垃圾邮件。随时取消订阅。