type-challenges
type-challenges copied to clipboard
28143 - OptionalUndefined
type OptionalUndefined<T extends object, Props extends keyof T = keyof T> =
{
[K in keyof T as undefined extends T[K] ? K extends Props ? K : never : never]?: T[K]
} & {
[K in keyof T as undefined extends T[K] ? K extends Props ? never : K : K]: T[K]
} extends infer Combined
? {[K in keyof Combined]: Combined[K]} : never