export type PickEssential = { [K in keyof O as Pick, K> extends Pick ? never : K]: O[K]; }; export type DeepRequired> = { [K in keyof T]-?: NonNullable extends Record ? DeepRequired> : NonNullable; };