1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46
|
=== tests/cases/compiler/multiCallOverloads.ts ===
interface ICallback {
>ICallback : ICallback
(x?: string):void;
>x : string
}
function load(f: ICallback) {}
>load : (f: ICallback) => void
>f : ICallback
>ICallback : ICallback
var f1: ICallback = function(z?) {}
>f1 : ICallback
>ICallback : ICallback
>function(z?) {} : (z?: string) => void
>z : string
var f2: ICallback = function(z?) {}
>f2 : ICallback
>ICallback : ICallback
>function(z?) {} : (z?: string) => void
>z : string
load(f1) // ok
>load(f1) : void
>load : (f: ICallback) => void
>f1 : ICallback
load(f2) // ok
>load(f2) : void
>load : (f: ICallback) => void
>f2 : ICallback
load(function() {}) // this shouldn’t be an error
>load(function() {}) : void
>load : (f: ICallback) => void
>function() {} : () => void
load(function(z?) {}) // this shouldn't be an error
>load(function(z?) {}) : void
>load : (f: ICallback) => void
>function(z?) {} : (z?: string) => void
>z : string
|