=== tests/cases/compiler/contextuallyTypingOrOperator2.ts === var v: { a: (_: string) => number } = { a: s => s.length } || { a: s => 1 }; >v : { a: (_: string) => number; } >a : (_: string) => number >_ : string >{ a: s => s.length } || { a: s => 1 } : { a: (s: string) => number; } >{ a: s => s.length } : { a: (s: string) => number; } >a : (s: string) => number >s => s.length : (s: string) => number >s : string >s.length : number >s : string >length : number >{ a: s => 1 } : { a: (s: string) => number; } >a : (s: string) => number >s => 1 : (s: string) => number >s : string >1 : number var v2 = (s: string) => s.length || function (s) { s.aaa }; >v2 : (s: string) => number | ((s: any) => void) >(s: string) => s.length || function (s) { s.aaa } : (s: string) => number | ((s: any) => void) >s : string >s.length || function (s) { s.aaa } : number | ((s: any) => void) >s.length : number >s : string >length : number >function (s) { s.aaa } : (s: any) => void >s : any >s.aaa : any >s : any >aaa : any