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 47
|
=== tests/cases/compiler/functionOverloadAmbiguity1.ts ===
function callb(lam: (l: number) => void );
>callb : { (lam: (l: number) => void): any; (lam: (n: string) => void): any; }
>lam : (l: number) => void
>l : number
function callb(lam: (n: string) => void );
>callb : { (lam: (l: number) => void): any; (lam: (n: string) => void): any; }
>lam : (n: string) => void
>n : string
function callb(a) { }
>callb : { (lam: (l: number) => void): any; (lam: (n: string) => void): any; }
>a : any
callb((a) => { a.length; } ); // error, chose first overload
>callb((a) => { a.length; } ) : any
>callb : { (lam: (l: number) => void): any; (lam: (n: string) => void): any; }
>(a) => { a.length; } : (a: number) => void
>a : number
>a.length : any
>a : number
>length : any
function callb2(lam: (n: string) => void );
>callb2 : { (lam: (n: string) => void): any; (lam: (l: number) => void): any; }
>lam : (n: string) => void
>n : string
function callb2(lam: (l: number) => void );
>callb2 : { (lam: (n: string) => void): any; (lam: (l: number) => void): any; }
>lam : (l: number) => void
>l : number
function callb2(a) { }
>callb2 : { (lam: (n: string) => void): any; (lam: (l: number) => void): any; }
>a : any
callb2((a) => { a.length; } ); // ok, chose first overload
>callb2((a) => { a.length; } ) : any
>callb2 : { (lam: (n: string) => void): any; (lam: (l: number) => void): any; }
>(a) => { a.length; } : (a: string) => void
>a : string
>a.length : number
>a : string
>length : number
|