Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

956 - DeepPick #24489

Open
BOCbMOU opened this issue Mar 5, 2023 · 0 comments
Open

956 - DeepPick #24489

BOCbMOU opened this issue Mar 5, 2023 · 0 comments
Labels
956 answer Share answers/solutions to a question en in English

Comments

@BOCbMOU
Copy link

BOCbMOU commented Mar 5, 2023

type UnionToIntersection<U> = 
  (U extends U ? (arg: U) => void : never) extends ((arg: infer I) => void) ? I : never

type DeepPick<T, K extends string> = UnionToIntersection<DeepPickUnion<T, K>>

type DeepPickUnion<T, K extends string> =
  K extends `${infer KFirst extends keyof T & string}.${infer KRest extends string}`
    ? { [Key in KFirst]: DeepPickUnion<T[Key], KRest> }
    : K extends keyof T ? { [Key in K]: T[Key] } : never
@BOCbMOU BOCbMOU added answer Share answers/solutions to a question en in English labels Mar 5, 2023
@github-actions github-actions bot added the 956 label Mar 5, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
956 answer Share answers/solutions to a question en in English
Projects
None yet
Development

No branches or pull requests

1 participant