=== tests/cases/compiler/functionOverloads41.ts === function foo(bar:{a:number;}[]):string; >foo : { (bar: { a: number;}[]): string; (bar: { a: boolean; }[]): number; } >bar : { a: number; }[] >a : number function foo(bar:{a:boolean;}[]):number; >foo : { (bar: { a: number; }[]): string; (bar: { a: boolean;}[]): number; } >bar : { a: boolean; }[] >a : boolean function foo(bar:{a:any;}[]):any{ return bar } >foo : { (bar: { a: number; }[]): string; (bar: { a: boolean; }[]): number; } >bar : { a: any; }[] >a : any >bar : { a: any; }[] var x = foo([{}]); >x : never >foo([{}]) : never >foo : { (bar: { a: number; }[]): string; (bar: { a: boolean; }[]): number; } >[{}] : {}[] >{} : {}