=== tests/cases/conformance/expressions/binaryOperators/logicalOrOperator/logicalOrExpressionIsContextuallyTyped.ts === // The || operator permits the operands to be of any type. // If the || expression is contextually typed, the operands are contextually typed by the // same type and the result is of the best common type of the contextual type and the two // operand types. var r: { a: string } = { a: '', b: 123 } || { a: '', b: true }; >r : { a: string; } >a : string >{ a: '', b: 123 } || { a: '', b: true } : { a: string; b: number; } | { a: string; b: boolean; } >{ a: '', b: 123 } : { a: string; b: number; } >a : string >'' : string >b : number >123 : number >{ a: '', b: true } : { a: string; b: boolean; } >a : string >'' : string >b : boolean >true : boolean