export type AreAllOptional = NonNullable extends never ? true : { [K in keyof T]-?: undefined extends T[K] ? never : K; }[keyof T] extends never ? true : false;