Skip to content

Commit

Permalink
fix: ts support for all optional keys in data model (#5283)
Browse files Browse the repository at this point in the history
* fix: improve ts support when data model has only optional keys

* fix: improve ts inference by removing `object extends T` from DeepKeys

* prettier

---------

Co-authored-by: Jakub R贸偶bicki <[email protected]>
Co-authored-by: Kevin Van Cott <[email protected]>
  • Loading branch information
3 people committed Feb 28, 2024
1 parent b0d7b3a commit bc7914a
Showing 1 changed file with 9 additions and 11 deletions.
20 changes: 9 additions & 11 deletions packages/table-core/src/utils.ts
Original file line number Diff line number Diff line change
Expand Up @@ -47,17 +47,15 @@ export type DeepKeys<T, TDepth extends any[] = []> = TDepth['length'] extends 5
? never
: unknown extends T
? string
: object extends T
? string
: T extends readonly any[] & IsTuple<T>
? AllowedIndexes<T> | DeepKeysPrefix<T, AllowedIndexes<T>, TDepth>
: T extends any[]
? DeepKeys<T[number], [...TDepth, any]>
: T extends Date
? never
: T extends object
? (keyof T & string) | DeepKeysPrefix<T, keyof T, TDepth>
: never
: T extends readonly any[] & IsTuple<T>
? AllowedIndexes<T> | DeepKeysPrefix<T, AllowedIndexes<T>, TDepth>
: T extends any[]
? DeepKeys<T[number], [...TDepth, any]>
: T extends Date
? never
: T extends object
? (keyof T & string) | DeepKeysPrefix<T, keyof T, TDepth>
: never

type DeepKeysPrefix<
T,
Expand Down

0 comments on commit bc7914a

Please sign in to comment.