=== tests/cases/compiler/inheritedFunctionAssignmentCompatibility.ts === interface IResultCallback extends Function { } >IResultCallback : IResultCallback, Symbol(IResultCallback, Decl(inheritedFunctionAssignmentCompatibility.ts, 0, 0)) >Function : Function, Symbol(Function, Decl(lib.d.ts, 223, 38), Decl(lib.d.ts, 269, 11)) function fn(cb: IResultCallback) { } >fn : (cb: IResultCallback) => void, Symbol(fn, Decl(inheritedFunctionAssignmentCompatibility.ts, 0, 46)) >cb : IResultCallback, Symbol(cb, Decl(inheritedFunctionAssignmentCompatibility.ts, 2, 12)) >IResultCallback : IResultCallback, Symbol(IResultCallback, Decl(inheritedFunctionAssignmentCompatibility.ts, 0, 0)) fn((a, b) => true); >fn((a, b) => true) : void >fn : (cb: IResultCallback) => void, Symbol(fn, Decl(inheritedFunctionAssignmentCompatibility.ts, 0, 46)) >(a, b) => true : (a: any, b: any) => boolean >a : any, Symbol(a, Decl(inheritedFunctionAssignmentCompatibility.ts, 4, 4)) >b : any, Symbol(b, Decl(inheritedFunctionAssignmentCompatibility.ts, 4, 6)) >true : boolean fn(function (a, b) { return true; }) >fn(function (a, b) { return true; }) : void >fn : (cb: IResultCallback) => void, Symbol(fn, Decl(inheritedFunctionAssignmentCompatibility.ts, 0, 46)) >function (a, b) { return true; } : (a: any, b: any) => boolean >a : any, Symbol(a, Decl(inheritedFunctionAssignmentCompatibility.ts, 5, 13)) >b : any, Symbol(b, Decl(inheritedFunctionAssignmentCompatibility.ts, 5, 15)) >true : boolean