T
PathToPartialType
Like PathToType, but every object key is optional and objects stay
open (accept extra keys). Useful when the produced type only describes the
keys a consumer may provide rather than the full shape of the source data.
Signature
ts
export type PathToPartialType<T extends string[], Target = unknown>
= T extends [infer Head, ...infer Rest]
? Head extends `${number}`
? Rest extends string[]
? Array<PathToPartialType<Rest, Target>>
: never
: Rest extends string[]
? { [K in Head & string]?: PathToPartialType<Rest, Target> } & Record<PropertyKey, unknown>
: never
: Target;Type Parameters
Textends string[]Target= unknown