In the case of ("" && 7), there's not really any common type other than 'any' we could assign anyway. Unfortunately, the way the && operator is actually used in idiomatic JS, there's no one rule that will accurately capture the semantics of
real-world && usage (same for ||, but the rules are different because the common use cases are different).