//// [functionAssignment.ts] function f(n: Function) { } f(function () { }); interface foo { get(handler: (bar: number)=>void): void; } interface baz { get(callback: Function): number; } var barbaz: baz; var test: foo; test.get(function (param) { var x = barbaz.get(function () { }); }); function f2(n: () => void) { } f2(() => { var n = ''; n = 4; }); function f3(a: { a: number; b: number; }) { } f3({ a: 0, b: 0 }); function callb(lam:(l: number) => void ); function callb(lam:(n: string)=>void); function callb(a) { } callb((a) =>{ a.length; }); //// [functionAssignment.js] function f(n) { } f(function () { }); var barbaz; var test; test.get(function (param) { var x = barbaz.get(function () { }); }); function f2(n) { } f2(function () { var n = ''; n = 4; }); function f3(a) { } f3({ a: 0, b: 0 }); function callb(a) { } callb(function (a) { a.length; });