//// [optionalBindingParametersInOverloads2.ts]

function foo({ x, y, z }?: { x: string; y: number; z: boolean });
function foo(...rest: any[]) {

}

foo({ x: "", y: 0, z: false });

foo({ x: false, y: 0, z: "" });

//// [optionalBindingParametersInOverloads2.js]
function foo() {
    var rest = [];
    for (var _i = 0; _i < arguments.length; _i++) {
        rest[_i - 0] = arguments[_i];
    }
}
foo({ x: "", y: 0, z: false });
foo({ x: false, y: 0, z: "" });
