typescript
OptionalExceptOne:
type _OptionalExceptOne<T extends object, Rest = never, Result = never> = { [K in keyof T]: Exclude<Rest, K> extends never ? _OptionalExceptOne<Omit<T, K>, Rest | K, Result | Partial<Omit<T, K>> & {[k in K]: T[K]}> : Result }[keyof T] type OptionalExceptOne<T extends object> = _OptionalExceptOne<T>
(ваш голос учтен)