Recipes › Chapter 8: Helper Types
Recipe 8.4 from The TypeScript Cookbook
type GetRequired<T> = { [K in keyof T as T[K] extends Required<T>[K] ? K : never]: T[K]; };