tests/cases/compiler/functionOverloads41.ts(4,13): error TS2345: Argument of type '{}[]' is not assignable to parameter of type '{ a: boolean; }[]'. Type '{}' is not assignable to type '{ a: boolean; }'. Property 'a' is missing in type '{}'. ==== tests/cases/compiler/functionOverloads41.ts (1 errors) ==== function foo(bar:{a:number;}[]):string; function foo(bar:{a:boolean;}[]):number; function foo(bar:{a:any;}[]):any{ return bar } var x = foo([{}]); ~~~~ !!! error TS2345: Argument of type '{}[]' is not assignable to parameter of type '{ a: boolean; }[]'. !!! error TS2345: Type '{}' is not assignable to type '{ a: boolean; }'. !!! error TS2345: Property 'a' is missing in type '{}'.