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 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108
|
=== tests/cases/compiler/functionAssignment.ts ===
function f(n: Function) { }
>f : (n: Function) => void
>n : Function
f(function () { });
>f(function () { }) : void
>f : (n: Function) => void
>function () { } : () => void
interface foo {
get(handler: (bar: number)=>void): void;
>get : (handler: (bar: number) => void) => void
>handler : (bar: number) => void
>bar : number
}
interface baz {
get(callback: Function): number;
>get : (callback: Function) => number
>callback : Function
}
var barbaz: baz;
>barbaz : baz
var test: foo;
>test : foo
test.get(function (param) {
>test.get(function (param) { var x = barbaz.get(function () { });}) : void
>test.get : (handler: (bar: number) => void) => void
>test : foo
>get : (handler: (bar: number) => void) => void
>function (param) { var x = barbaz.get(function () { });} : (param: number) => void
>param : number
var x = barbaz.get(function () { });
>x : number
>barbaz.get(function () { }) : number
>barbaz.get : (callback: Function) => number
>barbaz : baz
>get : (callback: Function) => number
>function () { } : () => void
});
function f2(n: () => void) { }
>f2 : (n: () => void) => void
>n : () => void
f2(() => {
>f2(() => { var n = ''; n = 4;}) : void
>f2 : (n: () => void) => void
>() => { var n = ''; n = 4;} : () => void
var n = '';
>n : string
>'' : ""
n = 4;
>n = 4 : 4
>n : string
>4 : 4
});
function f3(a: { a: number; b: number; }) { }
>f3 : (a: { a: number; b: number; }) => void
>a : { a: number; b: number; }
>a : number
>b : number
f3({ a: 0, b: 0 });
>f3({ a: 0, b: 0 }) : void
>f3 : (a: { a: number; b: number; }) => void
>{ a: 0, b: 0 } : { a: number; b: number; }
>a : number
>0 : 0
>b : number
>0 : 0
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; });
>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
|