Parentheses turn Booleans into Numbers for no reason


a:Boolean = true;
b:Boolean = false;

if(a|b) /* whatever */


Results into: Implicit coercion of a value of type Boolean to an unrelated type Number.

Why do parentheses turn into Booleans into Numbers? Can’t I use bitwise operations?