RequestResultSafeDestructure
similar to RequestResult except it allows you to destructure the possible shape of the success response {@see RequestResult}
type RequestResultSafeDestructure<T> = {
data: T;
error: null;
} | {data: T extends object ? [K in keyof T]: null : null;
error: AuthError;
};