Home > types-kit > InternalDeepReplacePick
Signature:
type InternalDeepReplacePick<
T,
KeysArr extends readonly unknown[],
ValuesArr extends readonly unknown[],
> = {
[P in keyof T]: InternalDeepReplacePickValue<
P,
T[P],
KeysArr,
ValuesArr
> extends [infer Res, infer V]
? Res extends true
? V
: V extends V
? IsObject<V> extends true
? // get filter keys and values
InternalDeepReplacePickKeys<P, KeysArr, ValuesArr> extends [
infer ResultKeys,
infer ResultValues,
]
? ResultKeys extends readonly unknown[]
? ResultValues extends readonly unknown[]
? IsEmptyTypeArray<ResultKeys> extends true
? V
: InternalDeepReplacePick<V, ResultKeys, ResultValues>
: never
: never
: never
: V
: never
: never
}References: InternalDeepReplacePickValue, IsObject, InternalDeepReplacePickKeys, IsEmptyTypeArray, InternalDeepReplacePick