diff --git a/packages/form-core/src/utils.ts b/packages/form-core/src/utils.ts index a3d102d..1abd504 100644 --- a/packages/form-core/src/utils.ts +++ b/packages/form-core/src/utils.ts @@ -133,22 +133,28 @@ type AllowedIndexes< ? AllowedIndexes : Keys -export type DeepKeys = unknown extends T +export type DeepKeys = TDepth['length'] extends 10 + ? never + : unknown extends T ? keyof T : object extends T ? string : T extends readonly any[] & IsTuple - ? AllowedIndexes | DeepKeysPrefix> + ? AllowedIndexes | DeepKeysPrefix, TDepth> : T extends any[] ? DeepKeys : T extends Date ? never : T extends object - ? (keyof T & string) | DeepKeysPrefix + ? (keyof T & string) | DeepKeysPrefix : never -type DeepKeysPrefix = TPrefix extends keyof T & (number | string) - ? `${TPrefix}.${DeepKeys & string}` +type DeepKeysPrefix< + T, + TPrefix, + TDepth extends any[], +> = TPrefix extends keyof T & (number | string) + ? `${TPrefix}.${DeepKeys & string}` : never export type DeepValue = T extends Record