=== tests/cases/compiler/conditionalExpressions2.ts === var a = false ? 1 : null; >a : number >false ? 1 : null : number >false : boolean >1 : number >null : null var b = false ? undefined : 0; >b : number >false ? undefined : 0 : number >false : boolean >undefined : undefined >0 : number var c = false ? 1 : 0; >c : number >false ? 1 : 0 : number >false : boolean >1 : number >0 : number var d = false ? false : true; >d : boolean >false ? false : true : boolean >false : boolean >false : boolean >true : boolean var e = false ? "foo" : "bar"; >e : string >false ? "foo" : "bar" : string >false : boolean >"foo" : string >"bar" : string var f = false ? null : undefined; >f : any >false ? null : undefined : null >false : boolean >null : null >undefined : undefined var g = true ? {g:5} : null; >g : { g: number; } >true ? {g:5} : null : { g: number; } >true : boolean >{g:5} : { g: number; } >g : number >5 : number >null : null var h = [{h:5}, null]; >h : { h: number; }[] >[{h:5}, null] : { h: number; }[] >{h:5} : { h: number; } >h : number >5 : number >null : null function i() { if (true) { return { x: 5 }; } else { return null; } } >i : () => { x: number; } >true : boolean >{ x: 5 } : { x: number; } >x : number >5 : number >null : null