//// [emitArrowFunction.ts]
var f1 = () => { }
var f2 = (x: string, y: string) => { }
var f3 = (x: string, y: number, ...rest) => { }
var f4 = (x: string, y: number, z = 10) => { }
function foo(func: () => boolean) { }
foo(() => true);
foo(() => { return false; });

//// [emitArrowFunction.js]
var f1 = function () { };
var f2 = function (x, y) { };
var f3 = function (x, y) {
    var rest = [];
    for (var _i = 2; _i < arguments.length; _i++) {
        rest[_i - 2] = arguments[_i];
    }
};
var f4 = function (x, y, z) {
    if (z === void 0) { z = 10; }
};
function foo(func) { }
foo(function () { return true; });
foo(function () { return false; });
