tests/cases/compiler/booleanAssignment.ts(2,1): error TS2322: Type 'number' is not assignable to type 'Boolean'.
  Types of property 'valueOf' are incompatible.
    Type '() => number' is not assignable to type '() => boolean'.
      Type 'number' is not assignable to type 'boolean'.
tests/cases/compiler/booleanAssignment.ts(3,1): error TS2322: Type 'string' is not assignable to type 'Boolean'.
  Types of property 'valueOf' are incompatible.
    Type '() => string' is not assignable to type '() => boolean'.
      Type 'string' is not assignable to type 'boolean'.
tests/cases/compiler/booleanAssignment.ts(4,1): error TS2322: Type '{}' is not assignable to type 'Boolean'.
  Types of property 'valueOf' are incompatible.
    Type '() => Object' is not assignable to type '() => boolean'.
      Type 'Object' is not assignable to type 'boolean'.


==== tests/cases/compiler/booleanAssignment.ts (3 errors) ====
    var b = new Boolean();
    b = 1; // Error
    ~
!!! error TS2322: Type 'number' is not assignable to type 'Boolean'.
!!! error TS2322:   Types of property 'valueOf' are incompatible.
!!! error TS2322:     Type '() => number' is not assignable to type '() => boolean'.
!!! error TS2322:       Type 'number' is not assignable to type 'boolean'.
    b = "a"; // Error
    ~
!!! error TS2322: Type 'string' is not assignable to type 'Boolean'.
!!! error TS2322:   Types of property 'valueOf' are incompatible.
!!! error TS2322:     Type '() => string' is not assignable to type '() => boolean'.
!!! error TS2322:       Type 'string' is not assignable to type 'boolean'.
    b = {}; // Error
    ~
!!! error TS2322: Type '{}' is not assignable to type 'Boolean'.
!!! error TS2322:   Types of property 'valueOf' are incompatible.
!!! error TS2322:     Type '() => Object' is not assignable to type '() => boolean'.
!!! error TS2322:       Type 'Object' is not assignable to type 'boolean'.
    
    var o = {};
    o = b; // OK
    
    b = true; // OK
    
    var b2:boolean;
    b = b2; // OK