export type addQuestionMarksToNullableProperties = { [K in OptionalKeys]?: T[K]; } & Pick>; export type OptionalKeys = { [K in keyof T]-?: undefined extends T[K] ? K : null extends T[K] ? K : 1 extends (any extends T[K] ? 0 : 1) ? never : K; }[keyof T]; export type RequiredKeys = Exclude>;