type Required<T> = { [K in keyof T]-?: Exclude<T[K], undefined>; }
Here's the Required which really works.