//// [optionalBindingParametersInOverloads1.ts] function foo([x, y, z] ?: [string, number, boolean]); function foo(...rest: any[]) { } foo(["", 0, false]); foo([false, 0, ""]); //// [optionalBindingParametersInOverloads1.js] function foo() { var rest = []; for (var _i = 0; _i < arguments.length; _i++) { rest[_i - 0] = arguments[_i]; } } foo(["", 0, false]); foo([false, 0, ""]);