tests/cases/conformance/expressions/unaryOperators/typeofOperator/typeofOperatorWithAnyOtherType.ts(46,32): error TS2365: Operator '+' cannot be applied to types 'null' and 'undefined'.
tests/cases/conformance/expressions/unaryOperators/typeofOperator/typeofOperatorWithAnyOtherType.ts(47,32): error TS2365: Operator '+' cannot be applied to types 'null' and 'null'.
tests/cases/conformance/expressions/unaryOperators/typeofOperator/typeofOperatorWithAnyOtherType.ts(48,32): error TS2365: Operator '+' cannot be applied to types 'undefined' and 'undefined'.
tests/cases/conformance/expressions/unaryOperators/typeofOperator/typeofOperatorWithAnyOtherType.ts(58,1): error TS2695: Left side of comma operator is unused and has no side effects.
tests/cases/conformance/expressions/unaryOperators/typeofOperator/typeofOperatorWithAnyOtherType.ts(68,1): error TS7028: Unused label.
tests/cases/conformance/expressions/unaryOperators/typeofOperator/typeofOperatorWithAnyOtherType.ts(69,1): error TS7028: Unused label.
tests/cases/conformance/expressions/unaryOperators/typeofOperator/typeofOperatorWithAnyOtherType.ts(70,1): error TS7028: Unused label.
tests/cases/conformance/expressions/unaryOperators/typeofOperator/typeofOperatorWithAnyOtherType.ts(71,1): error TS7028: Unused label.
tests/cases/conformance/expressions/unaryOperators/typeofOperator/typeofOperatorWithAnyOtherType.ts(72,1): error TS7028: Unused label.
tests/cases/conformance/expressions/unaryOperators/typeofOperator/typeofOperatorWithAnyOtherType.ts(73,1): error TS7028: Unused label.
tests/cases/conformance/expressions/unaryOperators/typeofOperator/typeofOperatorWithAnyOtherType.ts(74,1): error TS7028: Unused label.


==== tests/cases/conformance/expressions/unaryOperators/typeofOperator/typeofOperatorWithAnyOtherType.ts (11 errors) ====
    // typeof  operator on any type
    
    var ANY: any;
    var ANY1;
    var ANY2: any[] = ["", ""];
    var obj: () => {}
    var obj1 = { x: "a", y: () => { }};
    
    function foo(): any {
        var a;
        return a;
    }
    class A {
        public a: any;
        static foo() {
            var a;
            return a;
        }
    }
    module M {
        export var n: any;
    }
    var objA = new A();
    
    // any type var
    var ResultIsString1 = typeof ANY1;
    var ResultIsString2 = typeof ANY2;
    var ResultIsString3 = typeof A;
    var ResultIsString4 = typeof M;
    var ResultIsString5 = typeof obj;
    var ResultIsString6 = typeof obj1;
    
    // any type literal
    var ResultIsString7 = typeof undefined;
    var ResultIsString8 = typeof null;
    var ResultIsString9 = typeof {};
    
    // any type expressions
    var ResultIsString10 = typeof ANY2[0];
    var ResultIsString11 = typeof objA.a;
    var ResultIsString12 = typeof obj1.x;
    var ResultIsString13 = typeof M.n;
    var ResultIsString14 = typeof foo();
    var ResultIsString15 = typeof A.foo();
    var ResultIsString16 = typeof (ANY + ANY1);
    var ResultIsString17 = typeof (null + undefined);
                                   ~~~~~~~~~~~~~~~~
!!! error TS2365: Operator '+' cannot be applied to types 'null' and 'undefined'.
    var ResultIsString18 = typeof (null + null);
                                   ~~~~~~~~~~~
!!! error TS2365: Operator '+' cannot be applied to types 'null' and 'null'.
    var ResultIsString19 = typeof (undefined + undefined);
                                   ~~~~~~~~~~~~~~~~~~~~~
!!! error TS2365: Operator '+' cannot be applied to types 'undefined' and 'undefined'.
    
    // multiple typeof  operators
    var ResultIsString20 = typeof typeof ANY;
    var ResultIsString21 = typeof typeof typeof (ANY + ANY1);
    
    // miss assignment operators
    typeof ANY;
    typeof ANY1;
    typeof ANY2[0];
    typeof ANY, ANY1;
    ~~~~~~~~~~
!!! error TS2695: Left side of comma operator is unused and has no side effects.
    typeof obj1;
    typeof obj1.x;
    typeof objA.a;
    typeof M.n;
    
    // use typeof in type query
    var z: any;
    var x: any[];
    var r: () => any;
    z: typeof ANY;
    ~
!!! error TS7028: Unused label.
    x: typeof ANY2;
    ~
!!! error TS7028: Unused label.
    r: typeof foo;
    ~
!!! error TS7028: Unused label.
    z: typeof objA.a;
    ~
!!! error TS7028: Unused label.
    z: typeof A.foo;
    ~
!!! error TS7028: Unused label.
    z: typeof M.n;
    ~
!!! error TS7028: Unused label.
    z: typeof obj1.x;
    ~
!!! error TS7028: Unused label.