=== tests/cases/compiler/declarationEmitDestructuring2.ts === function f({x = 10, y: [a, b, c, d] = [1, 2, 3, 4]} = { x: 10, y: [2, 4, 6, 8] }) { } >f : ({x = 10, y: [a, b, c, d] = [1, 2, 3, 4]}?: { x: number; y: [number, number, number, number]; }) => void >x : number >10 : number >y : any >a : number >b : number >c : number >d : number >[1, 2, 3, 4] : [number, number, number, number] >1 : number >2 : number >3 : number >4 : number >{ x: 10, y: [2, 4, 6, 8] } : { x: number; y: [number, number, number, number]; } >x : number >10 : number >y : [number, number, number, number] >[2, 4, 6, 8] : [number, number, number, number] >2 : number >4 : number >6 : number >8 : number function g([a, b, c, d] = [1, 2, 3, 4]) { } >g : ([a, b, c, d]?: [number, number, number, number]) => void >a : number >b : number >c : number >d : number >[1, 2, 3, 4] : [number, number, number, number] >1 : number >2 : number >3 : number >4 : number function h([a, [b], [[c]], {x = 10, y: [a, b, c], z: {a1, b1}}]){ } >h : ([a, [b], [[c]], {x = 10, y: [a, b, c], z: {a1, b1}}]: [any, [any], [[any]], { x?: number; y: [any, any, any]; z: { a1: any; b1: any; }; }]) => void >a : any >b : any >c : any >x : number >10 : number >y : any >a : any >b : any >c : any >z : any >a1 : any >b1 : any function h1([a, [b], [[c]], {x = 10, y = [1, 2, 3], z: {a1, b1}}]){ } >h1 : ([a, [b], [[c]], {x = 10, y = [1, 2, 3], z: {a1, b1}}]: [any, [any], [[any]], { x?: number; y?: number[]; z: { a1: any; b1: any; }; }]) => void >a : any >b : any >c : any >x : number >10 : number >y : number[] >[1, 2, 3] : number[] >1 : number >2 : number >3 : number >z : any >a1 : any >b1 : any