initializersWidened.ts(18,10): error TS2873: This kind of expression is always falsy.
initializersWidened.ts(19,10): error TS2873: This kind of expression is always falsy.
initializersWidened.ts(20,10): error TS2873: This kind of expression is always falsy.
initializersWidened.ts(22,10): error TS2873: This kind of expression is always falsy.
initializersWidened.ts(23,10): error TS2873: This kind of expression is always falsy.
initializersWidened.ts(24,10): error TS2873: This kind of expression is always falsy.


==== initializersWidened.ts (6 errors) ====
    // these are widened to any at the point of assignment
    
    var x1 = null;
    var y1 = undefined;
    var z1 = void 0;
    
    // these are not widened
    
    var x2: null;
    var y2: undefined;
    
    var x3: null = null;
    var y3: undefined = undefined;
    var z3: undefined = void 0;
    
    // widen only when all constituents of union are widening
    
    var x4 = null || null;
             ~~~~
!!! error TS2873: This kind of expression is always falsy.
    var y4 = undefined || undefined;
             ~~~~~~~~~
!!! error TS2873: This kind of expression is always falsy.
    var z4 = void 0 || void 0;
             ~~~~~~
!!! error TS2873: This kind of expression is always falsy.
    
    var x5 = null || x2;
             ~~~~
!!! error TS2873: This kind of expression is always falsy.
    var y5 = undefined || y2;
             ~~~~~~~~~
!!! error TS2873: This kind of expression is always falsy.
    var z5 = void 0 || y2;
             ~~~~~~
!!! error TS2873: This kind of expression is always falsy.