=== tests/cases/compiler/declarationEmitDestructuringOptionalBindingParametersInOverloads.ts === function foo([x, y, z] ?: [string, number, boolean]); >foo : ([x, y, z]?: [string, number, boolean]) => any >x : string >y : number >z : boolean function foo(...rest: any[]) { >foo : ([x, y, z]?: [string, number, boolean]) => any >rest : any[] } function foo2( { x, y, z }?: { x: string; y: number; z: boolean }); >foo2 : ({ x, y, z }?: { x: string; y: number; z: boolean; }) => any >x : string >y : number >z : boolean >x : string >y : number >z : boolean function foo2(...rest: any[]) { >foo2 : ({ x, y, z }?: { x: string; y: number; z: boolean; }) => any >rest : any[] }