tests/cases/compiler/assignmentCompatBug2.ts(1,27): error TS2322: Type '{ a: number; }' is not assignable to type '{ b: number; }'.
  Object literal may only specify known properties, and 'a' does not exist in type '{ b: number; }'.
tests/cases/compiler/assignmentCompatBug2.ts(3,8): error TS2322: Type '{ a: number; }' is not assignable to type '{ b: number; }'.
  Object literal may only specify known properties, and 'a' does not exist in type '{ b: number; }'.
tests/cases/compiler/assignmentCompatBug2.ts(5,13): error TS2322: Type '{ b: number; a: number; }' is not assignable to type '{ b: number; }'.
  Object literal may only specify known properties, and 'a' does not exist in type '{ b: number; }'.
tests/cases/compiler/assignmentCompatBug2.ts(15,1): error TS2322: Type '{ f: (n: number) => number; g: (s: string) => number; }' is not assignable to type '{ f(n: number): number; g(s: string): number; m: number; n?: number; k?(a: any): any; }'.
  Property 'm' is missing in type '{ f: (n: number) => number; g: (s: string) => number; }'.
tests/cases/compiler/assignmentCompatBug2.ts(20,1): error TS2322: Type '{ f: (n: number) => number; m: number; }' is not assignable to type '{ f(n: number): number; g(s: string): number; m: number; n?: number; k?(a: any): any; }'.
  Property 'g' is missing in type '{ f: (n: number) => number; m: number; }'.
tests/cases/compiler/assignmentCompatBug2.ts(33,1): error TS2322: Type '{ f: (n: number) => number; g: (s: string) => number; n: number; k: (a: any) => any; }' is not assignable to type '{ f(n: number): number; g(s: string): number; m: number; n?: number; k?(a: any): any; }'.
  Property 'm' is missing in type '{ f: (n: number) => number; g: (s: string) => number; n: number; k: (a: any) => any; }'.


==== tests/cases/compiler/assignmentCompatBug2.ts (6 errors) ====
    var b2: { b: number;} = { a: 0 }; // error
                              ~~~~
!!! error TS2322: Type '{ a: number; }' is not assignable to type '{ b: number; }'.
!!! error TS2322:   Object literal may only specify known properties, and 'a' does not exist in type '{ b: number; }'.
    
    b2 = { a: 0 }; // error
           ~~~~
!!! error TS2322: Type '{ a: number; }' is not assignable to type '{ b: number; }'.
!!! error TS2322:   Object literal may only specify known properties, and 'a' does not exist in type '{ b: number; }'.
    
    b2 = {b: 0, a: 0 };
                ~~~~
!!! error TS2322: Type '{ b: number; a: number; }' is not assignable to type '{ b: number; }'.
!!! error TS2322:   Object literal may only specify known properties, and 'a' does not exist in type '{ b: number; }'.
    
    var b3: { f(n: number): number; g(s: string): number; m: number; n?: number; k?(a: any): any; };
    
    b3 = {
        f: (n) => { return 0; },
        g: (s) => { return 0; },
        m: 0,
    }; // ok
    
    b3 = {
    ~~
!!! error TS2322: Type '{ f: (n: number) => number; g: (s: string) => number; }' is not assignable to type '{ f(n: number): number; g(s: string): number; m: number; n?: number; k?(a: any): any; }'.
!!! error TS2322:   Property 'm' is missing in type '{ f: (n: number) => number; g: (s: string) => number; }'.
        f: (n) => { return 0; },
        g: (s) => { return 0; },
    }; // error
    
    b3 = {
    ~~
!!! error TS2322: Type '{ f: (n: number) => number; m: number; }' is not assignable to type '{ f(n: number): number; g(s: string): number; m: number; n?: number; k?(a: any): any; }'.
!!! error TS2322:   Property 'g' is missing in type '{ f: (n: number) => number; m: number; }'.
        f: (n) => { return 0; },
        m: 0,
    }; // error
    
    b3 = {
        f: (n) => { return 0; },
        g: (s) => { return 0; },
        m: 0,
        n: 0,
        k: (a) =>{ return null; },
    }; // ok
    
    b3 = {
    ~~
!!! error TS2322: Type '{ f: (n: number) => number; g: (s: string) => number; n: number; k: (a: any) => any; }' is not assignable to type '{ f(n: number): number; g(s: string): number; m: number; n?: number; k?(a: any): any; }'.
!!! error TS2322:   Property 'm' is missing in type '{ f: (n: number) => number; g: (s: string) => number; n: number; k: (a: any) => any; }'.
        f: (n) => { return 0; },
        g: (s) => { return 0; },
        n: 0,
        k: (a) =>{ return null; },
    }; // error