=== tests/cases/compiler/multiCallOverloads.ts === interface ICallback { >ICallback : Symbol(ICallback, Decl(multiCallOverloads.ts, 0, 0)) (x?: string):void; >x : Symbol(x, Decl(multiCallOverloads.ts, 1, 5)) } function load(f: ICallback) {} >load : Symbol(load, Decl(multiCallOverloads.ts, 2, 1)) >f : Symbol(f, Decl(multiCallOverloads.ts, 4, 14)) >ICallback : Symbol(ICallback, Decl(multiCallOverloads.ts, 0, 0)) var f1: ICallback = function(z?) {} >f1 : Symbol(f1, Decl(multiCallOverloads.ts, 6, 3)) >ICallback : Symbol(ICallback, Decl(multiCallOverloads.ts, 0, 0)) >z : Symbol(z, Decl(multiCallOverloads.ts, 6, 29)) var f2: ICallback = function(z?) {} >f2 : Symbol(f2, Decl(multiCallOverloads.ts, 7, 3)) >ICallback : Symbol(ICallback, Decl(multiCallOverloads.ts, 0, 0)) >z : Symbol(z, Decl(multiCallOverloads.ts, 7, 29)) load(f1) // ok >load : Symbol(load, Decl(multiCallOverloads.ts, 2, 1)) >f1 : Symbol(f1, Decl(multiCallOverloads.ts, 6, 3)) load(f2) // ok >load : Symbol(load, Decl(multiCallOverloads.ts, 2, 1)) >f2 : Symbol(f2, Decl(multiCallOverloads.ts, 7, 3)) load(function() {}) // this shouldn’t be an error >load : Symbol(load, Decl(multiCallOverloads.ts, 2, 1)) load(function(z?) {}) // this shouldn't be an error >load : Symbol(load, Decl(multiCallOverloads.ts, 2, 1)) >z : Symbol(z, Decl(multiCallOverloads.ts, 11, 14))